Как насчет этой модификации?
Очки модификации:
- В этом случае требуется изменить полученные значения HTML. Например, при запуске
var content = UrlFetchApp.fetch(url).getContentText()
каждое значение атрибута не заключено. Они должны быть изменены.
- В заголовке есть объединенный столбец.
Когда вышеуказанные точки отражены в сценарии, он становится следующим:
Модифицированный скрипт:
function scrapeData() {
// Retrieve table as a string using Parser.
var url = "https://stooq.com/q/d/?s=barc.uk&i=d";
var fromText = '#d9d9d9}</style>';
var toText = '<table';
var content = UrlFetchApp.fetch(url).getContentText();
var scraped = Parser.data(content).from(fromText).to(toText).build();
// Modify values
scraped = scraped.replace(/=([a-zA-Z0-9\%-:]+)/g, "=\"$1\"").replace(/nowrap/g, "");
// Parse table using XmlService.
var root = XmlService.parse(scraped).getRootElement();
// Retrieve header and modify it.
var headerTr = root.getChild("thead").getChildren();
var res = headerTr.map(function(e) {return e.getChildren().map(function(f) {return f.getValue()})});
res[0].splice(7, 0, "Change");
// Retrieve values.
var valuesTr = root.getChild("tbody").getChildren();
var values = valuesTr.map(function(e) {return e.getChildren().map(function(f) {return f.getValue()})});
Array.prototype.push.apply(res, values);
// Put the result to the active spreadsheet.
var ss = SpreadsheetApp.getActiveSheet();
ss.getRange(1, 1, res.length, res[0].length).setValues(res);
}
Примечание:
- Перед запуском этого измененного сценария установите библиотеку GAS Parser.
- Этот измененный скрипт не соответствует различным URL. Это может быть использовано для URL в вашем вопросе. Если вы хотите получить значения с другого URL-адреса, измените скрипт.
Справка:
Если это не то, что вы хотите, извините.