博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
nodejs crawler简单尝试
阅读量:4031 次
发布时间:2019-05-24

本文共 1918 字,大约阅读时间需要 6 分钟。

由于我在网上找不到crawler的相关介绍博客所以写了这一片文章

目录

这是crawler在github上的地址
Github

简单使用

npm 安装:npm install crawler

new一个crawler对象

var c = new Crawler({
encoding:null, jQuery:false, //在每个请求处理完毕后将调用此回调函数 callback : function (error, res, done) {
if(error){
console.log(error); }else{
var $ = res.$; //$ 默认为 Cheerio 解析器 //它是核心jQuery的精简实现,可以按照jQuery选择器语法快速提取DOM元素 console.log($("title").text()); } done(); }});

然后往crawler队列里面不停的加url就行了,

//将一个URL加入请求队列,并使用默认回调函数c.queue('http://www.amazon.com');//将多个URL加入请求队列c.queue(['http://www.google.com/','http://www.yahoo.com']);

控制并发速度

爬虫框架一般都是同时去爬多个页面,但是速度过快会触发目标网站的反爬虫机制,也同时影响别人网站的性能。

控制最大的并发数量

var c = new Crawler({
// 最大并发数默认为10 maxConnections : 1, callback : function (error, res, done) {
if(error){
console.log(error); }else{
var $ = res.$; console.log($("title").text()); } done(); }});

使用慢速模式

使用参数 rateLimit 启用慢速模式,两次请求之间会闲置 rateLimit 毫秒,而 maxConnections 将被强行修改为 1 。

var c = new Crawler({
// `maxConnections` 将被强制修改为 1 maxConnections : 10, // 两次请求之间将闲置1000ms rateLimit: 1000, callback : function (error, res, done) {
if(error){
console.log(error); }else{
var $ = res.$; console.log($("title").text()); } done(); }});

下载图片等静态文件

var c = new Crawler({
encoding:null, jQuery:false, // set false to suppress warning message. callback:function(err, res, done){
if(err){
console.error(err.stack); }else{
fs.createWriteStream(res.options.filename).write(res.body); } done(); }});c.queue({
uri:"https://nodejs.org/static/images/logos/nodejs-1920x1200.png", filename:"nodejs-1920x1200.png"});

转载地址:http://flqbi.baihongyu.com/

你可能感兴趣的文章
[关注大学生]读“贫困大学生的自白”
查看>>
[互联网关注]李开复教大学生回答如何学好编程
查看>>
[关注大学生]李开复给中国计算机系大学生的7点建议
查看>>
[关注大学生]大学毕业生择业:是当"鸡头"还是"凤尾"?
查看>>
[茶余饭后]10大毕业生必听得歌曲
查看>>
gdb调试命令的三种调试方式和简单命令介绍
查看>>
C++程序员的几种境界
查看>>
VC++ MFC SQL ADO数据库访问技术使用的基本步骤及方法
查看>>
VUE-Vue.js之$refs,父组件访问、修改子组件中 的数据
查看>>
Vue-子组件改变父级组件的信息
查看>>
Python自动化之pytest常用插件
查看>>
Python自动化之pytest框架使用详解
查看>>
【正则表达式】以个人的理解帮助大家认识正则表达式
查看>>
性能调优之iostat命令详解
查看>>
性能调优之iftop命令详解
查看>>
非关系型数据库(nosql)介绍
查看>>
移动端自动化测试-Windows-Android-Appium环境搭建
查看>>
Xpath使用方法
查看>>
移动端自动化测试-Mac-IOS-Appium环境搭建
查看>>
Selenium之前世今生
查看>>