Введение
Я столкнулся с этой задачей в следующих обстоятельствах. Нужно было в рекламе проставить актуальные цены на 566 товаров. Цену нужно было взять с сайта, все страницы которого идентичны друг другу. Делать это вручную очень утомительно и времязатратно. И было решено автоматизировать эту задачу с помощью функции IMPORTXML в Google Spreadsheets.
Сейчас пошагово покажу весь процесс на примере своего сайта.
Какие исходные данные нужны
- Ссылки на страницы сайтов, с которых нужно достать информацию
- Минимальные знания в HTML разметке и в составлении xpath запросов
- Лень делать вручную, жгучее желание автоматизировать рутину
Порядок действий
- Создаем пустую гугл таблицу Google Spreadsheets
- Вставляем в неё список всех ссылок сайта, откуда будем заимствовать контент. В этом примере буду использовать свой собственный сайт.
- Открываем любую из ссылок. На примере этой статьи
- Нажимаем F12, открывается отладчик браузера
- Находим в нем вкладку Elements, которая покажет исходный html-код страницы
- Нажимаем на иконку со стрелочкой
Кликаем на маленькую синюю стрелку для интерактивного выбора элементов на странице - Кликаем на тот элемент страницы, текстовое содержимое хотим вытащить. Во вкладке Console браузера появится HTML тег, который содержит нужный нам текст. У многих html тегов есть атрибут class или id. Именно они нам и нужны. С помощью этих атрибутов мы будем искать то, что нужно извлекать.
Выбираем на странице нужный элемент, кликаем на него и смотрим в консоль браузера В моем случае это тег <span> с атрибутом itemprop=»author».
- Найдя нужный класс, вбиваем в соседнюю ячейку гугл таблицы следующую формулу
=IMPORTXML(A3; "//span[@itemprop='author']")
Здесь A3 — это ячейка, содержащая ссылку. Далее в кавычках указан xpath запрос по тегу span и его атрибуту itemprop со значением ‘author’. Для каждого сайта будут свои значения. Их нужно найти в консоли браузера. Если вы не знакомы с xpath и не знаете, как обратиться к нужному HTML элементу, рекомендую вот эту статью с примерами. - Жмем Enter, проверяем, корректно ли формула собирает информацию
- Протягиваем до конца диапазона
Прикладываю ссылку на получившуюся Гугл таблицу
https://docs.google.com/spreadsheets/d/1gYozQKpA1beaIN5kGcgNc-QEST5i9orJTHdS1TJnqAQ/edit?usp=sharing