Google Apps Script:
Розбір HTML

Як:

Google Apps Script не має вбудованого методу для розбору HTML. Однак, ви можете використовувати сервіс UrlFetchApp для отримання HTML-контенту, а потім використовувати методи JavaScript або regex (регулярні вирази) для розбору. Нижче наведено базовий приклад того, як отримати та проаналізувати тег заголовка з веб-сторінки.

function parseHTMLTitle(url) {
  // Отримуємо HTML-контент веб-сторінки
  const response = UrlFetchApp.fetch(url);
  const htmlContent = response.getContentText();

  // Використовуємо простий regex для пошуку вмісту тега <title>
  const titleRegex = /<title>(.*?)<\/title>/;
  const match = htmlContent.match(titleRegex);

  // Перевіряємо, чи було знайдено заголовок, та повертаємо його
  if (match && match.length > 1) {
    return match[1];
  }

  return 'Заголовок не знайдено';
}

// Приклад використання
const url = 'http://example.com';
const pageTitle = parseHTMLTitle(url);
Logger.log(pageTitle); // Виводить заголовок веб-сторінки

Для більш складного розбору HTML, ви можете використовувати XmlService для розбору HTML як XML. Зауважте, однак, що це вимагає, щоб HTML був валідним XML, що не завжди є випадком:

function parseHTMLUsingXmlService(htmlContent) {
  try {
    const document = XmlService.parse(htmlContent);
    const rootElement = document.getRootElement();
    // Звідси навігуйте деревом XML з методами XmlService
    // Наприклад, для пошуку конкретного елемента чи атрибуту
  } catch(e) {
    Logger.log('Помилка розбору HTML: ' + e.toString());
  }
}

Поглиблений аналіз:

Історично, розбір HTML в середовищах, як-от Google Apps Script, був проблематичним через відсутність моделі об’єкта документа (DOM) або спеціалізованих бібліотек для розбору, які поширені в інших контекстах програмування. JavaScript у браузері, наприклад, має доступ до DOM, а середовища Node.js мають доступ до множини пакетів NPM, таких як cheerio або jsdom, для розбору HTML.

Підхід Google Apps Script значною мірою спирається на використання UrlFetchApp для веб-запитів, а потім обробку отриманих даних за допомогою регулярних виразів або методів розбору XML. Хоча regex може бути корисним для простих завдань розбору, загалом його не рекомендується використовувати для складного HTML через ризик помилок та потенційну крихкість коду. Розбір XML із XmlService пропонує більш структурований підхід, але вимагає валідного HTML/XML, що може бути обмеженням при роботі з довільними веб-сторінками.

Для складних потреб розбору або при роботі з погано сформованим HTML однією з альтернативних стратегій може бути використання веб-сервісу зовні Google Apps Script. Цей сервіс міг би обробляти HTML-контент, можливо, використовуючи більш надійну техніку або бібліотеку для розбору, а потім повертати оброблені дані у формі, легко споживаній Google Apps Script. Однак, цей підхід вводить мережеву затримку та складність управління додатковим веб-сервісом.

Незважаючи на ці виклики, розбір HTML у Google Apps Script залишається потужним інструментом, особливо при поєднанні з іншими сервісами та API Google, надаючи широкий спектр можливостей для автоматизації, які можуть значно підвищити продуктивність і можливості обробки даних.