Парсинг в гугл таблице с помощью IMPORTXML

Статья посвящена функции IMPORTXMLв гугл таблице. С помощью данной функции можно получать актуальные данные с сайтов в онлайн режиме. Разберем аргументы функции IMPORTXML на примерах.
По кнопке открывается гугл таблица - справочник по аргументам функции IMPORTXML, а также на отдельном листе есть пример реализации данной функции для парсинга номеров телефонов.
IMPORTXML представляет собой функцию в гугл таблице, предназначенную для анализа HTML кода веб-страницы. С помощью различных аргументов данной функции можно достать информацию из HTML страницы, например Цена, Описание товара, Название, Ссылку на фото, Наличие на складе, Характеристики товара и многое другое.
IMPORTHTML отправляет запросы от сервера Google на сайт, ответ на запрос формируется в ячейке, в которую Вы написали формулу.

  1. IMPORTXML воспринимает только html теги. Т.е. если для подгрузки карточки товара используется java скрипт или другой код, то такой элемент с помощью данной функции вытащить не получится.
  2. Ограничение на количество запросов в единицу времени. Функция использует сервера Google, было бы расточительно с их стороны отдать неограниченную производительность своих серверов в руки пользователей. По-моему опыту IMPORTXML подойдет для парсинга сотен позиций (если нет другого ПО), но не тысяч. Обычно я использую эту функцию для проверки своих теорий по парсингу, пишу XPath запросы, и если они работают и успешно достают нужную мне информацию, то использую их уже в другом специализированном ПО. Гугл таблица позволяет обрабатывать не более 50 запросов одновременно. Если ответа от сервера страницы (из первого аргумента) нет более 2 мин, результат формулы будет - Ошибка.
  3. Публичный доступ к странице HTML. Если сайт требует авторизации (нужен логин и пароль), функция IMPORTXML не будет работать.
  4. Нет пагинации. IMPORTXML не умеет ходить по однотипным страницам карточек товаров. Для работы ему нужна конкретная ссылка. Но это решается с помощью предварительного парсинга ссылок на позиции и протягивания формулы IMPORTXML параллельно ячейкам со ссылками.
Синтаксис функции выглядит следующим образом: =IMPORTXML (ссылка; запрос_xpath; регион).
Первым аргументом является ссылка на страницу, ссылка должна быть заключена в кавычки. Вместо фиксированной ссылки можно записать адрес ячейки, в которой будет находиться ссылка. Например, =IMPORTXML(A1;"//@href").
Вторым аргументом выступает XPath запрос. Чуть ниже я предоставлю справочник по самым распространенным тегам.
Третьим аргументом является языковой регион, этот аргумент необязательный и работает только на мультиязычных страницах.
Как работает функция IMPORTXML, ограничения и синтаксис
Ограничения IMPORTXML
Синтаксис функции IMPORTHTML
XPath запросы - для использования во втором аргументе функции IMPORTXML
Ниже представлена небольшая таблица с распространенными XPath запросами, описанием для чего они нужны и примером реализации в формуле:
С более полным списком Вы можете ознакомиться в гугл таблице: Справочник Xpath запросов
запрос xpath
Пример парсинга номеров телефонов
Имеем страницу: https://www.orgpage.ru/rossiya/restorany-kafe/3/
Задача: спарсить номера телефонов со страницы.
1. Зайдем в гугл таблицу и запишем ссылку на страницу в удобном нам месте. Я это сделаю в ячейке B1.
2. Просмотрим код страницы в Яндекс Браузере, щелкнув правой кнопкой мыши по странице и выбрав Исследовать элемент.
3. Выберем инструмент "Исследовать элемент".
4. Наведем курсор на телефон на странице. Обратите внимание, что при наведении на элемент страницы появляется небольшое окно со справкой. В данном случае нас интересует тег элемента после div. Тег элемента с телефоном на данной странице - phone.
5. Возвращаемся в гугл таблицу и записываем в первом аргументе функции IMPORTXML - адрес ячейки со ссылкой на страницу (B1), во втором аргументе пишем Xpath запрос: "//div[@class='phone ']".
Итоговая формула выглядит так: =ImportXML(B1; "//div[@class='phone ']")
пример Xpath
парсинг xpath запросом
Разработка и ведение таблиц в Excel и Гугл таблицах
Самозанятый - Абдуллина Индира Ринатовна, ИНН 025700449805, дата постановки на учёт, в качестве налогоплательщика 12.11.2021
Email для документов: damir.abdullin248@gmail.com, Telegram - https://t.me/mmsenyy27
Made on
Tilda