Как использовать Google Таблицы для парсинга веб-страниц с помощью ИИ

С помощью встроенных формул, таких как IMPORTHTML и IMPORTXML, можно загружать контент в таблицы для дальнейшей обработки. Это похоже на работу программы-парсера, только проще и доступнее.

Давайте разберём, как именно использовать Google Таблицы для извлечения данных с сайтов.

Импорт через IMPORTHTML

IMPORTHTML — формула для импорта HTML-кода целой веб-страницы или её фрагмента. Это удобно, когда нужно получить содержимое сайта в табличном виде.

Например, можно импортировать список новостей или товаров интернет-магазина. Для этого достаточно ввести формулу =IMPORTHTML(ссылка_на_страницу; «table», индекс_таблицы) в ячейку.

Чтобы использовать IMPORTHTML, создайте новый лист в Google Docs и введите формулу =IMPORTHTML(url; «table»;num). Где:

  • url — это адрес импортируемой веб-страницы;
  • table — указывает, что нужно импортировать табличные данные;
  • num — номер таблицы на странице для импорта.

Например, импортируем расписание поездов:

  • =IMPORTHTML(«https://rasp.yandex.ru/train/moscow—saint-petersburg»; «table»;1).

Эта формула импортирует первую таблицу на странице rasp.yandex.ru. В результате получаем актуальное расписание поездов, которое можно проанализировать и обработать в таблице.

Рассмотрим более подробный пример парсинга курсов валют с сайта ЦБ РФ.

Создаём чистый лист в Google. Далее в ячейку вставляем формулу:

  • =IMPORTHTML(«https://www.cbr.ru/currency_base/daily/»; «table»;1).

Она импортирует первую таблицу с главной страницы курсов валют ЦБ РФ.

Также Google предоставляют инструменты для анализа импортированных данных: графики, диаграммы, фильтры.

Кроме IMPORTHTML есть и другие полезные формулы для импорта данных, например, IMPORTDATA и IMPORTRANGE. Их можно использовать для парсинга страниц без табличной структуры.

Извлечение данных через IMPORTXML

Если нужно извлечь конкретные данные, а не фрагмент страницы, то используется IMPORTXML. Эта формула позволяет гибко настраивать поиск и парсинг информации.

Например, можно получить список заголовков и дат всех новостей на странице:

  • =IMPORTXML(ссылка_на_страницу; «//h2|//span[@class=’date’]»).

Или извлечь конкретный параметр товара, например цену:

  • =IMPORTXML(ссылка_на_страницу; «//span[@itemprop=’price’]»).

С помощью IMPORTXML можно решать более сложные задачи по сбору и анализу данных.

Внимание! Формулы выше не универсальны. Под каждый сайт и набор параметров нужно создавать индивидуальный запрос: в этом нам поможет ИИ от OpenAI.

Предположим, нужно спарсить заголовок статьи Википедии:

  1. Скопируйте ссылку на главную страницу: https://ru.wikipedia.org/wiki/IOS.
  2. Откройте Google Таблицы и создайте новый лист.
  3. В ячейку А1 вставьте формулу:

=IMPORTXML(https://ru.wikipedia.org/wiki/IOS;»//h1″;»en_US«).

В первой строке первого столбца должен отобразиться заголовок.

Возможности IMPORTXML гораздо шире:

  • Можно вытащить любые данные, к которым есть доступ через XPath запрос.
  • Результаты можно фильтровать, сортировать, упорядочивать.
  • Можно делать рекурсивный парсинг, обращаясь к выгруженным данным.

С помощью функций Google Sheets можно автоматизировать сбор и обработку информации с сайтов.

Как использовать чат-бот для парсинга веб-страниц

ChatGPT решает множество задач, которые раньше требовали знаний и навыков программирования. Теперь достаточно дать чат-боту подробные инструкции — и он сгенерирует нужный код или скрипт.

Например, если задать ChatGPT вопрос «Как с помощью функции IMPORTXML в Google Таблицах извлечь заголовок веб-страницы в HTML?», он мгновенно выдаст готовую формулу для использования. Но это довольно простая задача, с которой можно справиться и без чат-бота.

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

Постановка задачи

Пусть нужно извлечь данные с Википедии, о фильмах удостоенных наград Американской киноакадемии:

  • Названия фильмов.
  • Год выпуска.
  • Количество наград.
  • Количество номинаций.

Попытка решения с ChatGPT

При составлении запросов для чат-бота потребовалось несколько попыток, чтобы максимально подробно сформулировать задачу. ChatGPT стремился быстро дать какой-то результат, но не полностью соответствующий заданию.

На первых попытках чат-бот вернул всего 7 фильмов с заголовками и ссылками. После доработки запроса он смог выдать 1372 строк с ссылками.

Оставалось добавить награды и номинации. Но здесь чат-бот допустил ошибку, проигнорировав указания и сгенерировав свои, неточные значения.

При повторной попытке с загрузкой копии HTML-страницы ChatGPT также не справился с задачей. Проблема, по его словам, заключалась в сложной структуре и большом объёме страницы.

Решение с помощью Google Sheets

Далее была предпринята попытка решить задачу с использованием функции IMPORTXML в Google Таблицах.

На этот раз ChatGPT сгенерировал формулы для извлечения названий, дат, наград и номинаций.

Вот примеры формул, предложенных чат-ботом:

  • =IMPORTXML(«ссылка на страницу»;»xpath для заголовка»;);
  • =IMPORTXML(«ссылка на страницу»;»xpath для года выпуска»;);
  • =IMPORTXML(«ссылка на страницу»;»xpath для наград»;);
  • =IMPORTXML(«ссылка на страницу»;»xpath для номинаций»;).

С помощью этих формул данные были представлены в столбцах A, B, C и D.

Ограничения Google Таблиц

Возможности Google Sheets впечатляющие, учитывая, что это бесплатный онлайн-сервис. Однако есть и ограничения:

  • Максимум 50 000 ячеек с данными за импорт. Для больших объёмов нужно использовать скрипты.
  • Нет гибкой настройки частоты импорта. Данные обновляются только по запросу.

Google Таблицы отлично подходят для небольших объёмов данных. Пользоваться функциями импорта гораздо проще, чем изучать язык программирования и разрабатывать собственные скрипты.

В завершение познакомимся с онлайн-сервисов по ускорению индексации SpeedyIndex. В последнем обновлении было добавлено:

  1. Проверка сайта в индексе Google.
  2. Экспорт ссылок из карты сайта.
  3. Отправка списка ссылок в виде сообщения.

Проверка происходит по 4 запросам: site:URL, inurl:URL, URL, «URL». На баланс каждого пользователя было зачислено 50 ссылок для тестирования обновления. Отчёт об индексации поступает через 72 часа.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *