Коллеги,
fetch в скриптах Таблиц - один запрос к веб-странице, fetchall - сразу пачка.Сегодня мы для вас набросали простой пример использования этого инструмента.
Какую решали задачу: в Таблице список ссылок страницы одного типа. Нам нужно открыть каждую и выдернуть из кода страницы регуляркой ссылку на изображение и вставить результат в Таблицу.
Пара нюансов ниже
1) когда формируем массив запросов – обязательно добавляем к каждому
muteHttpExceptions: true, чтобы из-за недоступности одного у нас не упала пачка запросов целикомfunction create_rqsts(urls) {
return urls.map(row => isURL(row[0]) ? { url: row[0], muteHttpExceptions: true } : '')
.filter(t => t)
}2) собственно запрашиваем всё
function fetch_all_all_all(req) {
return response = UrlFetchApp.fetchAll(req);
}3) каждый ответ обрабатываем регуляркой, достаём нужное
function match_all_all_all_all(array) {
return array.map(page => {
let m = page.toString().matchAll(d.regExp);
return 'https://adv-map.com' + [...m]?.[1]?.[1] || '-'
})
}4) пересобираем исходный массив ссылок, на место валидных ссылок вставляем полученный из пункта 3 результат
function redesign(urls, data) {
return urls.map((h, i) => [isURL(h[0]) ? data[urls.slice(0, i + 1).filter(f => f[0]).length - 1] : '-']);
}Код в пастебин
Таблица с примером
Документация fetch, fetchall