Найти тему
PromoPult

Как быстро собрать названия товаров с сайта для контекстной рекламы

Оглавление

Парсинг нужен, чтобы получить с сайтов открытую информацию. К примеру, цены, фотографии или полностью каталог товаров. Для этой задачи нужны специальные инструменты.

Расскажем о том, как спарсить информацию с любого сайта, даже если вы ничего не понимаете в программировании, на примере Screaming Frog Seo Spider.

Что такое парсинг и зачем он нужен

Если пользоваться терминологией «для чайников», парсинг — это сбор структурированной информации. Чаще всего, результаты оформляются в виде таблицы с конкретным набором данных.

Парсер — программа, которая собирает данные по заданным условиям. Со страниц, которые вы указали, она собирает нужную информацию в Excel-файл либо куда-то еще.

Основа процесса парсинга — язык запросов XPath. С его помощью программа обращается к определенному участку кода страницы и собирает из него заданную информацию.

-2

Программы для парсинга

Допустим, вы решили, что вам нужно специальное ПО для парсинга. Но если вы введете в поисковике слово «парсинг» или фразу «заказать парсинг», то вам среди прочего будут предлагаться услуги. Эти услуги стоят относительно дорого и предполагают создание программы-парсера с нуля под вашу задачу. Кроме цены у этого метода есть еще один существенный недостаток — как правило, такая программа нацелена только на сбор конкретных данных, она не гибкая и без знаний программирования вы не сможете ее самостоятельно перенастроить для других задач.

Однако на рынке существуют готовые решения, которые можно настроить под свои задачи. SEO-специалисты однозначно знакомы с таким ПО, но, возможно, не используют его функционал в полной мере.

Покажем, как парсить нужную информацию с сайта, на примере Screaming Frog SEO Spider. У программы есть и бесплатный функционал, но под наши задачи нужна платная версия. Годовая лицензия обойдется примерно в 15 000 рублей (£149.00).

Парсим цены

Возьмем такую ситуацию: вам нужно собрать цены с сайта конкурента. Для примера мы выбрали сайт mosdommebel.ru.

  • Заходим на страницу карточки товара:
-3
  • Видим, что цена отображается вверху справа, напротив заголовка H1. Ищем эту цену в html-коде. Для этого нажимаем правой кнопкой мыши прямо на цену (не просто на какой-то фон или пустой участок). Затем выбираем пункт Inspect Element (Исследовать элемент, Просмотреть код элемента, в зависимости от браузера) для того, чтобы в коде сразу его определить:
-4

Цена заключена в тег <span> с классом totalPrice2. Так разработчик обозначил в коде стоимость данного товара, которая отображается в карточке.

Фиксируем: есть некий элемент span с классом totalPrice2. Пока это держим в голове.

  • Дальше можно поступить двумя способами.

3.1. Первый способ. Непосредственно в коде нажать правой кнопкой мыши на тег <span> и выбрать Скопировать > XPath. Скопируется строка, которая обращается к данному участку кода:

-5

Выглядит она так:

/html/body/div[1]/div[2]/div[4]/table/tbody/tr/td/div[1]/div/table[2]/tbody/tr/td[2]/form/table/tbody/tr[1]/td/table/tbody/tr[1]/td/div[1]/span[1]

Но этот вариант не слишком надежен. Допустим, в другой карточке товара верстка выглядит иначе (например, нет каких-то блоков или блоки расположены по-другому) — тогда метод не сработает.

3.2. Второй способ. Воспользуемся справкой по языку XPath. Их очень много, просто загуглите «XPath примеры».

Например, такая:

-6

Здесь указано как с помощью языка запросов XPath получить нужные данные. Например, если мы хотим получить содержимое заголовка h1, нам нужна такая запись:

//h1/text()

Если мы хотим получить текст заголовка с классом productName, мы пишем вот так:

//h1[@class="productName"]/text()

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

4. Открываем Screaming Frog Seo Spider.

-7

5. Заходим во вкладку меню Configuration, выбираем подпункт Custom, и в нем еще один подпункт Extraction:

-8

6. Заходим в Extraction. Мы хотим собрать цены товаров.

И уже выяснили, что все цены на карточках товара обозначаются в коде тегом <span> с классом totalPrice2. Исходя из этой информации формируем вот такой XPath запрос:

//span[@class="totalPrice2"]/span

И указываем его в разделе Configuration > Custom > Extractions. Для удобства можем как-нибудь назвать колонку, в которую будет попадать информация. Например, «стоимость»:

-9

Так парсер будет обращаться к коду страниц и вытаскивать из него содержимое стоимости.

Также в настройках мы можем указать, что парсер будет собирать — весь html-код или только текст. Нам нужен только текст, без разметки, стилей и других элементов:

-10

7. Нажимаем ОК. Мы задали кастомные параметры парсинга.

8. Подбираем страницы, с которых парсить информацию. Если мы просто укажем URL сайта в Screaming Frog, программа пойдет по всем страницам сайта. Но на информационных страницах и страницах категорий цен нет. Чтобы не тратить время, лучше загрузить в парсер конкретный список страниц — карточки товаров. Откуда их взять?

Как правило, на любом сайте есть XML-карта, и находится она чаще всего по адресу: «адрес сайта/sitemap.xml». В случае с сайтом из нашего примера это адрес:

https://www.mosdommebel.ru/sitemap.xml.

Можно узнать адрес карты сайта в robots.txt (site.ru/robots.txt). Чаще всего ссылка на карту сайта расположена в самом низу:

-11

Даже если карта называется как-то странно, необычно, нестандартно, вы все равно увидите здесь ссылку.

Но если вдруг карты сайта нет, придется запускать стандартный режим в парсере. Программа будет ходить по всем страницам, но нужную информацию соберет только с карточек товара. Минус только в том, что вы потратите больше времени.

В нашем случае карта сайта есть, поэтому переходим по ссылке https://www.mosdommebel.ru/sitemap.xml и видим, что сама карта разделяется на несколько карт. Отдельная карта по статичным страницам, по категориям, по продуктам (карточкам товаров), по статьям и новостям:

-12

Нас интересует карта продуктов, то есть карточек товаров:

-13

9. Возвращаемся в Screaming Frog и запускаем его в режиме List. В этом режиме мы загрузим конкретный список страниц, по которому он будет ходить. Нажимаем на вкладку Mode и выбираем List:

-14

Жмем кнопку Upload и кликаем по Download Sitemap:

-15

Указываем ссылку на Sitemap карточек товара, нажимаем ОК:

-16

Программа скачает все ссылки, указанные в карте сайта. В нашем случае Screaming Frog обнаружил более 40 тысяч ссылок на карточки товаров:

-17

10. Нажимаем ОК, и начинается парсинг сайта:

-18

11. После завершения парсинга на первой вкладке Internal мы можем посмотреть информацию по всем характеристикам: код ответа, индексируется/не индексируется, title страницы, description и все остальное.

-19

Это все полезная информация, но нам нужна стоимость товаров.

11. Для этого в интерфейсе Screaming Frog переходим на вкладку Custom:

На этой вкладке из выпадающего списка фильтров (Filter) выбираем Extraction:

И получаем список страниц и колонка «Стоимость 1» с ценами в рублях:

12. Теперь полученные данные можно выгрузить в xlsx или csv-файл для дальнейшей работы:

Если требуется получить дополнительные сведения, например названия этих товаров, то нужно проделать следующие шаги:

  • зайти в Configuration > Custom > Extraction;
  • выбрать еще один XPath-запрос;
  • указать, что мы хотим собрать, в нашем случае — тег <h1>.

Запускаем парсинг еще раз и получаем не только стоимость, но и названия товаров:

Получилась связка: url товара, его цена и название.

Если мы хотим получить описание товара или другие данные — продолжаем действовать по изложенной выше схеме.

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

Парсим фотографии товаров

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

Для этого нам нужно собрать в эксель адреса всех картинок, которые есть у разных карточек товара. Именно адреса, в виде ссылок. По ссылкам фото можно скачать или напрямую загрузить на свой сайт. Большинство движков интернет-магазинов, таких как Битрикс и Shop-Script, поддерживают загрузку фотографий по ссылке. Нужно всего лишь указать в CSV-файле, который используется для импорта-экспорта, ссылки на фотографии.

Чтобы узнать, где в коде страницы зашит адрес фотографии, нажимаем на нее правой кнопкой, выбираем Inspect Element, начинаем исследовать:

Смотрим, в каком элементе и с каким классом у нас находится данное изображение, что оно из себя представляет, какая у него ссылка и т.д.:

Выяснили, что изображения лежат в элементе <span>, у которого id — firstFotoForma. Чтобы спарсить нужные нам картинки, пишем XPath-запрос:

//*[@id="firstFotoForma"]/*/img/@src

Расшифруем его: это обращение к элементам с идентификатором firstFotoForma, дальше есть какие-то вложенные элементы (поэтому прописана звездочка), дальше тег img, из которого нужно получить содержимое атрибута src. То есть строку, в которой и прописан URL-адрес фотографии.

Берем этот XPath-запрос, в Screaming Frog переходим в Configuration > Custom > Extraction, вставляем и жмем ОК:

Для начала попробуем спарсить одну карточку. Нужно скопировать ее адрес и добавить в Screaming Frog таким образом: Upload > Paste.

Нажимаем ОК. Screaming Frog спарсил одну карточку товара и у нас получилась табличка:

Мы загрузили один URL на входе, и у нас автоматически появилось сразу много столбцов «фото товара». По этому товару собралось 9 фотографий.

Для проверки попробуем открыть одну из фотографий. Копируем адрес фотографии и вставляем в адресной строке браузера:

Фото открылось, значит парсер сработал корректно и вытянул нужную нам информацию.

Теперь переключим Screaming Frog в режим Spider. Для этого нажимаем Mode > Spider. Указываем адрес https://www.eldorado.ru, нажимаем старт и запускаем парсинг.

Программа парсит весь сайт. На страницах, которые не являются карточками товара, ничего не находится. А по карточкам товаров собираются ссылки на все фотографии:

Их легко собрать и положить в Excel-таблицу. В ней будут указаны ссылки на все фотографии для каждого товара.

Парсим характеристики товаров

Соберем характеристики товаров на примере книг из интернет-магазина Озон.

Нажимаем правой кнопкой на каждую характеристику, выбираем Inspect Element и смотрим, как называется элемент, который содержит характеристику:

У нас это элемент <div>, у которого в качестве класса указана строка eItemProperties_Line.

Внутри каждого такого элемента <div> содержится название характеристики и ее значение:

Значит, нам нужно собирать элементы <div> с классом eItemProperties_Line.

Для парсинга составляем XPath-запрос:

//*[@class="eItemProperties_line"]

В Screaming Frog выбираем Configuration > Custom > Extraction. Вставляем XPath-запрос, выбираем Extract Text (так как нам нужен только текст в чистом виде, без разметки), нажимаем ОК.

Далее проделываем следующее:

  • переключаемся в режим Mode > List;
  • нажимаем Upload;
  • указываем адрес страницы, с которой будем собирать характеристики;
  • нажимаем ОК.

После завершения парсинга переключаемся на вкладку Custom, в списке фильтров выбираем Extraction.

Парсер собрал все характеристики. В каждой ячейке мы видим название характеристики (например, «Автор») и ее значение («Игорь Ашманов»).

Что можно парсить при помощи XPath

Короткий ответ — любую информацию практически с любого сайта. Единственное, надо понимать, что есть сайты с защитой от парсинга. Например, проекты Яндекса или сайт Авито. Но большинство сайтов можно спарсить.

Примеры данных, которые можно собрать при помощи XPath:

  • Цены, наличие товаров, любые характеристики, фото, 3D-фото.
  • Описание, отзывы, структуру сайта.
  • Контакты, неочевидные свойства и т.д.

При помощи парсинга любой элемент на странице, который есть в коде, можно вытащить в таблицу Excel.

Какие есть ограничения при парсинге и как их обойти

  • Бан по user-agent. Происходит это так: при обращении к сайту парсер отсылает запрос user-agent, в котором сообщает сайту информацию о себе. Некоторые сайты сразу блокируют доступ парсеров, которые в user-agent представляются как приложения. Это ограничение можно легко обойти. В Screaming Frog нужно зайти в Configuration > User-Agent и выбрать YandexBot или Googlebot.

Это называется подмена юзер-агента, этот маневр избавляет от ограничения.

  • Запрет в robots.txt. К примеру, в robots.txt может быть прописан запрет индексирования каких-то разделов для поисковых роботов. Чтобы обойти ограничение, заходим в Screaming Frog в Configuration > Robots.txt > Settings:

Далее выбираем игнорировать robots.txt:

  • Бан по IP. Если вы долгое время парсите какой-то сайт, то вас могут заблокировать на определенное или неопределенное время.

Здесь есть два варианта решения:

  • Использовать VPN.
  • Снизить скорость парсинга (это можно сделать в настройках), чтобы не давать лишнюю нагрузку на сайт.
  • Анализатор активности (капча). Есть сайты, которые защищаются от парсеров с помощью умного анализатора активности. Если ваши действия похожи на роботизированные, то анализатор показывает капчу, которую парсер не может обойти. Такое ограничение преодолеть будет долго и дорого.

Для специализированных задач в SEO, контекстной и таргетированной рекламе отлично подойдут парсеры PromoPult:

Парсер метатегов и заголовков быстро соберет title, description, keyords, заголовки h1 — h6 с вашего сайта и сайтов конкурентов.

Парсер Wordstat соберет частотности фраз по нужным регионам.

Парсер поисковых подсказок расширит семантику подсказками из Яндекса, Google и YouTube.

Парсер фраз-ассоциаций дополнит семантическое ядро фразами из блока «вместе с запросом ищут».

Парсер ИКС и знаков Яндекса поможет сравнить показатели качества своего ресурса с сайтами конкурентов.

Парсеры сообществ и пользователей ВКонтакте помогут настроить таргетинг на целевую аудиторию.

Парсер слов и объявлений конкурентов позволит узнать и применить семантику и фишки ваших конкурентов в контекстной рекламе.

Теперь вы знаете, как собрать любую нужную информацию с сайтов конкурентов. Пользуйтесь приведенными примерами и помните — почти все можно спарсить. А если нельзя — то, возможно, вы просто не знаете как.