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 回答