2 qq 21325027 qq_21325027 于 2016.04.12 22:58 提问

Node.js + request + cheerio 爬取数据出现问题 10C

我在用node爬取数据,用了request模块和cheerio模块,我在获取到了一个url后,用数组获取到了该url下的分页(假设为1-10),但是当打印数据后,发现只获取到了分页1下的数据

 for (var i = data.start; i <= data.end; i++) {
        var newUrl;
        if ( i == 1 ) {
            newUrl = data.url;
        } else {
            newUrl = data.url + '#!hot-p' + i;
        }
        urlList.push(newUrl);
    }
    async.eachSeries(urlList, function(elem, callback){
        //requestUrl(elem, data.tag, callback);
        request(elem, function(err, res){
            var $ = cheerio.load(res.body.toString());
            var j = $('.j');
            var a = j.find('.a').toArray();
            var hrefArray = [];
            for (var i=0;i< a.length;i++){
                var that = $(a[i]);
                var aHref = that.attr('href');
                var urls = 'http://www.duitang.com' + aHref;
                hrefArray.push(urls);
            }
            console.log(hrefArray);
            callback();
        });
    }, function(err){
        if (err) {
            console.log(err);
        }else{
            console.log('已完成全部抓取!');
        }
        callback();
    });

 console.log(hrefArray);
打印出来的数据全是分页1下的数据,请问这是为什么?

1个回答

devmiao
devmiao   Ds   Rxr 2016.04.12 23:50
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Node.js学习之网络爬虫(使用cheerio抓取网页数据)
准备工作 1.安装node.js开发环境:http://www.runoob.com/nodejs/nodejs-install-setup.html 2.了解cheerio库 英文:https://github.com/cheeriojs/cheerio 中文:https://cnodejs.org/topic/5203a71844e76d216a727d2e
Node.js:request+cheerio爬虫爬取免费代理
背景在极客学院的微信公众号上看到了一个Node.js写爬虫的入门教程——用nodejs去爬一下A站老司机的文章,感觉挺有意思,于是动手写一下。又想起有位大神用python写过一个抓免费代理的爬虫,于是模仿一下,用nodejs来实现。依赖库 request:发请求,下载网页用的,类似于python的urllib2 cheerio:解析网页用的,语法和jquery相似,类似于python的beautif
node.js 教你写爬虫(附上gbk,gb2312中文乱码的解决方法)
好久没有更新博客了,现在前端web越来越火了,各种前端技术也层出不穷,不过有一些趋势是可以肯定的,前端现在越来越模块化,mvvm框架让前端用户只需要关注数据的变化,也让web端从webpage转为功能更为复杂的webapps了,后端技术也不单单是php,java的天下,node.js的出现让前端开发人员也能独立开发一个小网站. 好了言归正传,今天我来教大家用node.js写爬虫,先说
nodejs+request+cheerio实现网络爬虫
nodejs是运行在服务器上的JavaScript。网络爬虫的实现由很多种方式(采用的库有很多选择),网络爬虫的类型也有很多(定向爬虫,分布式爬虫)流程介绍访问网页: 网页的访问需要注意的是:某些网页 需要登录才能进入,所以需要使用cherom浏览器看下网页源码,登录操作是否采用表单form提交方式,这种访问通常是POST形式,不需要登录就能访问的网页通常采用GET访问方式。 访问一些需要提交f
nodejs爬虫编码问题
最近再做一个nodejs网站爬虫的项目,但是爬一些网站的数据出现了中文字符乱码的问题。查了一下,主要是因为不是所有的网站的编码格式都是utf-8,还有一些网站用的是gb2312或者gbk的编码格式。所以需要做一个处理来进行编码的解码。至于网站的编码怎么看,可以通过去检查中的network去看。 根据相应的编码格式,进行相应的设置。utf-8就不要说了,下面就以gbk为例,说一下解码的方式。va
nodejs + request + cheerio 抓取页面指定的信息
1.引入cheerio模块  npm install --save cheerio 2. 引入iconv-lite模块 中文转码用 npm install --save iconv-lite
request cheerio 抓取页面并获取所需数据
有了node后,前端抓取网页数据就不成问题了 一般抓取都是获取页面中指定的数据。 分两种,一种同标签的html 一种是标签的属性值。 我自己写的比较lou ,只是从列表获取详情url,然后读取详情页面。 用cheerio获取有用数据,用fs写到文件内。保存指定的图片。 当然它对于页面用ajax加载的数据是无效的。 request 只能拿到页面的源码。至于获取ajax后的页面代码
node.js+cheerio简单爬虫
简单的通过node.js和cheerio来实现爬取豆瓣资源
nodejs爬虫GBK网页乱码
var http = require('http') var fs = require('fs') var cheerio = require('cheerio') var iconv = require('iconv-lite')function getUrl(url, handle) { http.get(url, (res) => { console.log(`stat
nodejs爬取豆瓣top250电影信息
nodejs简单爬虫,弄了好久,烦人的异步