0

Node Cheerio を使用して、スクレイパーが指すホーム/最初のページだけでなく、サイト全体をスクレイピングした人はいますか?

現時点では、ターゲットページのみをスクレイピングする次のことを行っています。

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

1 に答える 1

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);
    });
};
});
于 2013-11-26T16:30:36.567 に答える