Захват таблицы из HTML с помощью скрипта Google
Привет, я пытаюсь захватить эту веб-страницу и сохранить ее в виде таблицы... любой таблицы. Я использую скрипт Google.
var fetchString="http://www.airchina.com.cn/www/en/html/index/ir/traffic/"
var response = UrlFetchApp.fetch(fetchString);
Мне нужна помощь в коде, чтобы начать это. Я ищу, чтобы захватить таблицу "Данные трафика". Я хотел бы поместить его в 2D-массив, если это возможно.
1 ответ
Решение
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));
}