0
私は多くのWebスクレイピングのチュートリアルを見ましたが、私はサブページでウェブをスクラップしまうパターンを見つけることができません。ここでサブページを並行してWebをスクラップする方法は?
はシーケンス
- スクラップは、それぞれのURLにいくつかのURL
- ゴーを見つけるのURLの別の層にいくつかのURL
- Go]を見つけ、テーブル からコンテンツを読み込むための最初のページです
私は、ステップ1を行うにはしかし、さらに下に、私はすべての良い例を見つけることができない方法を教示多くのURLを見つけることができます。さらに、私はX線を試みましたが、URLが親項目の一部であるためうまくいきません。
var request = require('request');
var cheerio = require('cheerio');
var url = 'https://news.ycombinator.com';
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
$('span.comhead').each(function(i, element){
// Obtain the URL of the news
var a = $(this).prev();
var subUrl = a.attr('href');
// Go to that news and obtain the title
request(subUrl, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
var title = $("title").text();
console.log(title);
}
});
});
}
});
しかし、シーケンシャルな方法で実行されている必要がありeach
チーリオス:ここ
は、いくつかのサンプルコードです。ページを並行してスクラップする方法はありますか?
助けてくれてありがとう
これは私には再帰関数のように見えます。 URLをスタックにプッシュし、スタックが空になるまで 'while'ループでそれらを消費することで、それをエミュレートできます。 –
@LaurIvan質問を更新していただき、ありがとうございます。この変更が私が直面している問題を理解するのに役立つことを願っています。ありがとう。 – Winston