【发布时间】:2017-08-14 19:38:11
【问题描述】:
我正在使用nodeJS 制作一个网络爬虫,它正在工作,它调用页面,我使用cheerio 转换为JQuery,并调用标签。
现在我正在尝试调用页面的 cmets,但问题是,我想要的标签会在 Ajax GET 请求几秒钟后加载。而且我做出的 request-promise 找不到这个特定的标签,因为它稍后会加载。
有什么方法可以找到已加载的标签?
代码:
/* Requires */
var rp = require('request-promise');
var cheerio = require('cheerio');
//Page to crawl
var pageToVisit = "http://pagetoVisit.com/page-with-comments.html";
console.log("Visiting "+pageToVisit);
var options = {
uri: pageToVisit,
transform: function (body) {
return cheerio.load(body);
},
resolveWithFullResponse: true,
simple: false
};
rp(options)
.then(function ($) {
console.log($('.CommentsTag').text());
})
.catch(function (err) {
console.log(err);
// Crawling failed...
});
【问题讨论】:
-
提取 ajax url,然后执行第二个请求。但是,这需要大量调试,这可能不适合答案的范围:/
标签: javascript node.js ajax request web-crawler