4

こんにちは、このウェブページを取得してテーブルに保存しようとしています...任意のテーブル。Googleスクリプトを使用しています。

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

これを開始するには、コードに関するヘルプが必要です。「トラフィックデータ」テーブルを取得しようとしています。できれば2次元配列に入れたいです。

4

1 に答える 1

7

Google はXML 解析/操作サービスを提供しています。これを使用して、そのテーブルにある 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));

}
于 2013-02-11T04:29:33.990 に答える