nodejs + koa2 实现爬虫

superagent 官方文档
爬虫源代码实现(github地址)

安装koa脚手架

注意koa2只支持node版本 v7+,请确保版本足够

npm i koa-generator -g  //安装全部脚手架
koa2 projectName //初始化项目目录
cd projectName
npm i //默认携带package.json文件,需要我们自行安装node_modules包
npm start  //启动项目(默认是3000端口号)

需要注意的是,每次执行npm start命令, koa2默认会帮助我们执行一次入口文件,如果需要动态监测文件改变,开发环境建议使用nodemon进行实时监测刷新. (npm i nodemon -g), 这里需要更改 package.json文件中的 script属性,改为"scripts": { "start": "nodemon bin/www"} 即可,

superagent请求数据

用法如下:

npm i superagent -S
    superagent
        .get(url) 
        .set({  //设置请求头
            "Connection":"keep-alive",
        })
        .end((err,res) => {   //错误优先
            if(err){
                console.log(err);
                return ;
            }
            ctx.body = res.text  // 请求到的html在text属性中
        }

cheerio使用

文档可以参考这里 或者 这里
cheerio是为没有window对象的运行环境专门定制的DOM操作库. 是jquery的核心实现.(并不是基于window对象的)

const cheerio = require('cheerio');
//superagent请求到数据之后, 执行
const $ = cheerio.load(res.text);
...

常用Api :
addClass(className) : 给标签添加class名,方便抓取数据
text() : 获取标签的文本内容
find('img') : 查找某类型的标签或者class
toArray : 可以把一个伪数组变成数组
each : 循环遍历得到的数组,参数分别是(index,element);

具体实现以及cheerio使用,可以参考GitHub源代码. 如果你觉得源代码对你有帮助的话,记得点个Star噢~

    原文作者:可可可淑女
    原文地址: https://segmentfault.com/a/1190000012290819
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞