时间:2021-07-01 10:21:17 帮助过:17人阅读
前言
前端时间再回顾了一下node.js,于是顺势做了一个爬虫来加深自己对node的理解。
主要用的到是request,cheerio,async三个模块
request
用于请求地址和快速下载图片流。
cheerio
为服务器特别定制的,快速、灵活、实施的jQuery核心实现.
便于解析html代码。
async
异步调用,防止堵塞。
核心思路
用request 发送一个请求。获取html代码,取得其中的img标签和a标签。
通过获取的a表情进行递归调用。不断获取img地址和a地址,继续递归
获取img地址通过request(photo).pipe(fs.createWriteStream(dir + “/” + filename));进行快速下载。
防坑
1.在request通过图片地址下载时,绑定error事件防止爬虫异常的中断。
2.通过async的mapLimit限制并发。
3.加入请求报头,防止ip被屏蔽。
4.获取一些图片和超链接地址,可能是相对路径(待考虑解决是否有通过方法)。
测试:
可以感觉到速度还是比较快的。
以上就是多页面爬虫在nodejs中的示例代码分析的详细内容,更多请关注Gxl网其它相关文章!