javascript - 从一系列网页中提取数据最简单的方法是什么?

标签 javascript web-crawler extract data-extraction

这是我的问题:

我有来自电子商务的 sitemap.xlm。它包含其产品的所有 URL。我想从这些 URL 中获取产品的名称(也许还有它的价格)。我的第一个想法是使用 Google App Script:

function test() {

  var response = UrlFetchApp.fetch("http://www.leroymerlin.com.br/emenda-rigido-de-pvc-600cm-plasbil_87821293");

  Logger.log(response);

  var ind;

   while( ind = /<img src="([^"]*)/.exec( response.getContentText()) ){ 
     Logger.log(ind[1]);
   }

}

无论谁的UrlFetchApp.fetch()方法根本不可靠。所以我很快意识到这不是我最好的选择。

这是一个非常简单的任务。我无论如何都不想构建一些占用整个网站的东西。我只想从一组 URL 中提取一些数据。所以我认为必须有一个简单的解决方案。不幸的是,我在 GoolgeSearch 中发现的所有内容要么太复杂(爬行器遍历整个网站)要么不是免费的。

我需要一个基于 JavaScript 的解决方案。如果它是一个基于网络的解决方案(我可以在浏览器上执行的操作),我也会很棒,但如果我必须使用程序,那也可以。或者甚至可以在 Google App Script 上实现此功能的解决方案也适合我。

非常感谢。

最佳答案

您可能想要给出 PhantomJS尝试一下。它基本上是一个基于 webkit 的浏览器,没有任何可见的窗口。该 API 是 JS 原生的,而且相当简单。您甚至可以使用 CSS 选择器来获取相关页面的特定部分。

关于javascript - 从一系列网页中提取数据最简单的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33215613/

相关文章:

python - Scrapy,如何提取h3内容?

javascript - 使用 Selenium 收集 Javascript 下拉菜单上的每个选项

java - 如何从指定字符串: java中提取值

iOS 本地化 : Extract strings

php - 在php中的html标签之间提取字符串

javascript - Jest 测试中 buffer.toString() 上的 .toBeInstanceOf(String)?

javascript - 将 json 传递给 php 并从 php 接收数据的问题

javascript - Backbone.js 可以在集合的添加处理程序中调用 View 上的方法吗?

java - 网络爬虫与 Html 解析器

javascript - Jquery - 拦截在 iframe 中点击的链接