前言周末在家闲着,刷微信,玩手机,发现微信头像该换了,于是上网找头像,看了一下看图,心想作为一个码农,可以把这些图片全部爬取,做一个微信小程序,说到做到,基本会做,整理分享给大家。目录:安装node,根据构建服务请求下载我们要爬取的页面,返回json安装node,我们开始安装node,可以去node官网下载node下载地址,下载后运行node,node-v安装成功后会显示你安装的版本号出现。接下来,我们使用node,打印出helloworld,新建一个名为index.js的文件,输入console.log('helloworld')运行这个文件,nodeindex.js会在控制面板上输出helloworld,建立一个新建服务器一个名为node的文件夹首先需要下载express并依赖npminstallexpress新建一个名为demo.js的文件目录结构如图:在demo.js中引入下载的expressconstexpress=require('express');constapp=express();app.get('/index',function(req,res){res.end('111')})varserver=app.listen(8081,function(){varhost=server.address().addressvarport=server.address().portconsole.log("应用示例,访问地址为http://%s:%s",host,port)})runnodedemo.jssimpleservice就设置好了,如图:请求我们要爬取的页面,首先下载需要的依赖npminstallsuperagentnpminstallsuperagent-charsetnpminstallcheeriosuperagent用于发起请求,它是一个轻量级、渐进式的ajaxapi,可读性好,学习曲线低,内部依赖nodejs原生请求api,适合nodejs环境。也可以使用http发起请求superagent-charset防止爬取数据乱码,更改字符格式cheerio是专门为服务端定制的,快速,灵活,实现jQuery核心实现。。安装好依赖后,可以引入varsuperagent=require('superagent');varcharset=require('superagent-charset');charset(superagent);constcheerio=require('cheerio');引入之后,我们会请求我们的地址,https://www.qqtn.com/tx/weixi...constbaseUrl='https://www.qqtn.com/'设置好这些之后,就该发送了一个要求。接下来,请看完整的代码演示。jsvarsuperagent=require('superagent');varcharset=require('superagent-charset');charset(superagent);varexpress=require('express');varbaseUrl='https://www.qqtn.com/';//可以输入任意URLconstcheerio=require('cheerio');varapp=express();app.get('/index',function(req,res){//设置请求头res.header("Access-Control-Allow-Origin","*");res.header('Access-Control-Allow-Methods','PUT,GET,POST,DELETE,OPTIONS');res.header("Access-Control-Allow-Headers","X-Requested-With");res.header('Access-Control-Allow-Headers','Content-Type');//类型vartype=req.query.type;//页码varpage=req.query.page;type=type||'weixin';page=page||'1';varroute=`tx/${type}tx_${page}.html`//网页信息是gb2312,所以chaeset应该是.charset('gb2312'),一般网页是utf-8,可以直接用.charset('utf-8')superagent.get(baseUrl+route).charset('gb2312').end(function(err,sres){varitems=[];if(err){console.log('ERR:'+err);res.json({code:400,msg:err,sets:items});return;}var$=cheerio.load(sres.text);$('div.g-main-bgul.g-gxlist-imgboxlia').each(function(idx,element){var$element=$(element);var$subElement=$element.find('img');varthumbImgSrc=$subElement.attr('src');items.push({title:$(element).attr('title'),href:$element.attr('href'),thumbSrc:thumbImgSrc});});res.json({代码:200,味精:“”,数据:项目});});});varserver=app.listen(8081,function(){varhost=server.address().addressvarport=server.address().portconsole.log("应用实例,访问地址为http://%s:%s",host,port)})运行demo.js会返回我们获取到的数据,一个简单的节点爬虫就完成了,如图:希望大家在项目节点爬虫上点个星标作为你的对这个项目的认可和支持,谢谢
