动态生成的页面该怎么抓取?
最近在学习 alsotang 大神的 《Node.js 包教不包会》,碰到一个问题。比如我要抓取 http://www.cnblogs.com/assassinx/p/4897309.html 的第一条评论,参考 alsotang 的代码,如下:
var cheerio = require('cheerio');
var superagent = require('superagent');
function getFirstComment(url) {
superagent
.get(url)
.end(function(err, sres) {
if (err) {
console.error(err);
}
var $ = cheerio.load(sres.text);
var comment = $('.blog_comment_body').eq(0).text();
console.log(comment)
});
}
getFirstComment('http://www.cnblogs.com/assassinx/p/4897309.html');
但是结果输出的是空白。我个人思考了下,觉得可能是评论区的代码是动态生成的(可能是错的)。
问题来了,这样的情况应该怎么抓取呢?求大大指导~!thanks in advance!
9 回复
phantomjs
@dou4cc 谢谢,有没有推荐的资料?找了好久没找到…
@hanzichi 这里有个比phantomjs更好的,见www.nightmarejs.org,自己看API Doc。
phantomjs可以获取渲染之后的页面 自豪地采用 CNodeJS ionic
@dou4cc 谢谢谢谢,非常感谢!
@wlpeter 谢谢,我看看去
你的selector是不是错了, 我记得是’.reply_contnet’啊
你可以clone源码对照啊.
@wewea 源码没动态生成…
@hanzichi 没看清, 以为是抓cnode…