使用Google脚本从html中获取表格

jas*_*son 3 html javascript dom web-scraping google-apps-script

嗨,我正试图抓住这个网页并将其存储在一张桌子......任何桌子.我正在使用Google脚本.

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

我需要一些关于代码的帮助来启动它.我想抓住"交通数据"表.如果可能的话我想把它放到2D数组中.

Phi*_*zak 7

Google提供XML解析/操作服务.您可以使用它来解析该表中的html.

需要注意的是,如果您调查html实际来自哪里,您会发现它实际上来自不同的网址. 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));

}
Run Code Online (Sandbox Code Playgroud)