节点Cheerio刮掉整个网站

时间:2013-11-26 14:39:09

标签: javascript node.js web-scraping web-crawler cheerio

是否有人使用Node Cheerio来刮取整个网站而不仅仅是刮刀指向的家/第一页?

我正在做以下操作,只会刮擦目标页面。

request('http://arandomsite.com/', function (error, response, html) {
    if (!error && response.statusCode == 200){
        var $ = cheerio.load(html);
            ...
            ...
            ...
};

1 个答案:

答案 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);
    });
};
});