是否有人使用Node Cheerio来刮取整个网站而不仅仅是刮刀指向的家/第一页?
我正在做以下操作,只会刮擦目标页面。
request('http://arandomsite.com/', function (error, response, html) {
if (!error && response.statusCode == 200){
var $ = cheerio.load(html);
...
...
...
};
答案 0 :(得分:1)
我从未使用过Cheerio,但我会假设(和其他刮刀一样),它只会指向您指向的页面。假设cheerio.load返回像api这样的jquery,你可能需要做类似
的事情$('a').each(function(index, a) {
//TODO: You may want to keep track here of which you have done, and not redo any.
request('http://arandomsite.com' + a.attr('href'), myPageProcessFunction);
});
显然你需要添加像iframe这样的东西,以确保你得到完整的结果。
为了澄清,这里有一些更新的代码:
request('http://arandomsite.com/', function responseFunction(error, response, html) {
if (!error && response.statusCode == 200){
var $ = cheerio.load(html);
$('a').each(function(index, a) {
request('http://arandomsite.com' + a.attr('href'), responseFunction);
});
};
});