【问题标题】:Dynamic web page scraping with npm cheerio and and request使用 npmcheerio 和和请求进行动态网页抓取
【发布时间】:2017-09-07 14:49:12
【问题描述】:

我正在尝试从具有基本 URL 和动态路由的站点中抓取数据。这个特定的网站只使用数字,所以我有这个代码来获取数据:

for (var i = 1; i <= total; i++) {
  var temp = base_url + i;
  var result = "";
  request(temp, function(error, response, body) {
    var $ = cheerio.load(body);
    var address_string = 'http://maps.google.com/?q=' + $('title').text();
    //firebase
    database.ref('events/' + i).set({
      "address": address_string
    });
  });
}

但是,上面的代码不起作用,也没有向数据库添加任何内容。有谁知道怎么回事?

【问题讨论】:

    标签: javascript node.js web-scraping cheerio


    【解决方案1】:

    我不确定原因,但是在您编写的代码中会表现出奇怪的一件事是变量 i 未绑定到请求的回调范围,并且 for 循环将在任何回调之前完成调用。

    如果这是问题所在,那么 i === total 应该只有一个 db 条目。

    这可以通过执行 Array.forEach 来解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2019-03-12
      • 2021-11-15
      • 1970-01-01
      • 2020-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多