0

Nightmare npm を使用して、サイトからすべてのリンクを取得したいと考えています。次に、各リンクに移動して、タイトルとテキスト本文を取得します。私はこのコードを持っています。単一のリンクを渡すと正常に動作しますが、最初の関数の結果をループしたい場合、emmit.setMaxListeners []でエラーが発生します...助けてくれてありがとう。

function getUrls1() {
  var n = new Nightmare()
  .goto('http://www.example.com/newslist')
  .evaluate(function () {
    var arr = [];
     $('.news4 dd > a').each(function (i) {
      arr.push({link: $(this).prop('href')})
    })
    return arr;
  }).run(function (err,result) {
    // here i have an array of obj with prop link
    // but i need to loop over each link
    if(err) throw err;
    console.log(result[0].link);
    getText(result[0].link);
  });
}

function getText(link) {
  var n = new Nightmare()
    .goto(link)
    .evaluate(function () {
       return {
         title: $('h1.title').text(),
         text: $('div.text').text()
       };
    }).run(function (err,result) {
      // here i can write file or do something else
      if(err) console.error(err);
      console.log(result);
    })
}
4

1 に答える 1

1

これは古い質問だと思いますが、これはPR #407で修正*され、その後すぐに新しいバージョンでリリースされました。

* - イベント エミッターの最大値は に設定されていInfinityます。詳細については、問題#282を参照してください。

于 2016-01-31T22:46:47.043 に答える