1

と を使用して Web サイトをスクレイピングする方法を説明するチュートリアルがいくつかありrequestますcheerio。これらのチュートリアルでfsは、以下の例に示すように、出力をコンソールに送信するか、DOM をファイルにストリーミングします。

request(link, function (err, resp, html) {
  if (err) return console.error(err)
  var $ = cheerio.load(html),
      img = $('#img_wrapper').data('src');
  console.log(img);
}).pipe(fs.createWriteStream('img_link.txt'));

しかし、スクリプトの実行中に出力を処理したい場合はどうすればよいでしょうか? 出力にアクセスしたり、呼び出し元の関数に送り返すにはどうすればよいですか? もちろん、そこから情報を読み込んimg_link.txtで取得することもできますが、これにはコストがかかりすぎて意味がありません。

4

2 に答える 2

1

でコールバックする関数でリクエストをラップできますhtml

function(link, callback){
  request(link, function(err, im, body){
    callback(err, body);
  });
});

exports次に、それを他のモジュールに割り当てて使用します。

于 2014-04-24T08:20:15.927 に答える