извлечь текст из списка URL - скрипт приложения Google - PullRequest
1 голос
/ 06 марта 2020

У меня есть список URL в столбце A.

Я пытаюсь извлечь дату и время из каждого URL. Я использовал формулу импорта xml, но достиг максимального предела, который я могу использовать из-за одной формулы импорта xml на URL.

Я хочу, чтобы дата и время заполнялись рядом с URL-адресами в столбце B.

вот пример URL.

https://www.punters.com.au/form-guide/bunbury_171923/nti-maiden_987656/#Overview

вот поле даты и времени, в котором я заинтересован.

Любая помощь высоко ценится

date and time location

1 Ответ

1 голос
/ 07 марта 2020

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

К сожалению, значения типа Thursday, 13 Feb at 4:57pm не могут быть получены напрямую. Поэтому сначала извлекается время unix, и значение преобразуется в строку в формате.

Пример сценария:

Перед запуском сценария установите имя листа. И этот сценарий предполагает, что URL-адреса помещаются в столбец «B».

function myFunction() {
  var sheetName = "Sheet1";  // Please set the sheet name.

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName(sheetName);
  var urls = sheet.getRange(1, 2, sheet.getLastRow(), 1).getValues();
  var requests = urls.map(([url]) => ({url: url}));
  var res = UrlFetchApp.fetchAll(requests);
  var timezone = ss.getSpreadsheetTimeZone();
  var dateTimes = res.map(e => {
    if (e.getResponseCode() == 200) {
      var r = /<abbr class\="form-header__timestamp timestamp time12" data-utime\="(\d.+)"/.exec(e.getContentText())[1];
      return [Utilities.formatDate(new Date(Number(r) * 1000), timezone, "EEEE, dd MMM 'at' hh:mm") + Utilities.formatDate(new Date(Number(r) * 1000), timezone, "a").toLowerCase()];
    }
    return [""];
  });
  sheet.getRange(1, 3, dateTimes.length, 1).setValues(dateTimes);
}

Результат:

При запуске сценария полученные значения даты помещаются в столбец "C "следующим образом.

enter image description here

Примечание:

  • Если fetchAll не может использоваться в вашей ситуации, я думаю, что необходимо использовать fetch в l oop.

Список литературы:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...