javascript - 使用 Google 脚本从 html 中抓取表格

标签 javascript html dom google-apps-script web-scraping

您好,我正在尝试获取此网页并将其存储到表格中……任何表格。我正在使用 Google 脚本。

var fetchString="http://www.airchina.com.cn/www/en/html/index/ir/traffic/"
var response = UrlFetchApp.fetch(fetchString);

我需要一些代码方面的帮助才能开始。我想获取“交通数据”表。如果可能的话,我想把它放入一个二维数组中。

最佳答案

Google 提供了一个 XML parsing/manipulating service .您可以使用它来解析该表中的 html。

请注意,如果您调查该 html 的实际来源,您会发现它实际上来自不同的 url。 http://www.airchina.com.cn/www/jsp/airlines_operating_data/exlshow_en.jsp

这就是我为您准备的。它工作得很好。希望这对您来说已经足够了。

function fetchIt() {
  var fetchString="http://www.airchina.com.cn/www/jsp/airlines_operating_data/exlshow_en.jsp"
  var response = UrlFetchApp.fetch(fetchString);

  var xmlDoc = Xml.parse(response.getBlob().getDataAsString(),true);
  var b = xmlDoc.getElement().getElement("body");
  var table = b.getElement("div").getElement("div").getElement("div").getElements("div")[1].getElement("table");

  var rows = [];
  var trs = table.getElements("tr");
  for (var r=0,rlength=trs.length; r<rlength; r++) {
    var tds = trs[r].getElements("td");
    var row = [];
    for (var c=0,clength=tds.length; c<clength; c++) {
      row.push(tds[c].getText());
    }
    rows.push(row);
  }

  Logger.log(Utilities.jsonStringify(rows));

}

关于javascript - 使用 Google 脚本从 html 中抓取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14805527/

相关文章:

javascript - Canvas 内存泄漏

javascript - Crypto-Js 库的 hmac-256 脚本返回函数结构而不是 Google Apps 脚本中的值,在外部工作正常吗?

javascript - 使用 Javascript 获取 DOM 中的所有图像

Javascript - 对象数组,对象包含另一个数组和一个 int

javascript - Google Analytics 无法正确跟踪事件

javascript - 为什么 outerWidth 不适用于 jqgrid 行和列?

javascript - 从 JavaScript 创建的按钮执行函数的正确方法?

html - 如何使链接颜色不覆盖动画文本颜色

html - 本地主机更改而不刷新

javascript - 使用 Javascript 将按钮添加到 HTML 页面