XPath в помощь SEO-специалисту: как правильно и быстро парсить конкурентов?

#SEO 24 декабря 2021 Оценить статью

Что такое XPath и с чем его едят?

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

XPath — это такой язык запросов к элементам xml или html документа. Работа XPath-запросов построена на декларативном языке запросов, то есть, чтобы получить нужные данные необходимо всего лишь корректно задать запрос, описывающий эти данные, а все остальное сделает интерпретатор языка XPath.

Удобно? А как же, удобно и просто если понимать этот язык. А какие возможности есть у XPath для нас, то есть для SEO-специалистов? Давайте разбираться.

Основные возможности XPath

Какие данные можно спарсить?

  1. Любую информацию из кода практически с любого сайта. Тут важно понимать, мы можем попасть на сайт с защитой от парсинга. Например, спарсить любой сайт Яндекса не получится. Тоже самое касается и Авито, тоже довольно-таки сложно. Но большую часть сайтов можно успешно спарсить.
  2. Цены, наличие товаров и предложений, тексты, любые текстовые характеристики, изображения и даже 3D-фото.
  3. Описание, отзывы, структуру сайта.
  4. Контактную информацию (например почту), неочевидные свойства и т.д.

Все элементы на странице, которые есть в коде сайта можно успешно выгрузить в Excel.

Какие есть ограничения при парсинге через XPath?

  1. Бан по user-agent. Некоторые сайты запрещают доступ парсерам у которых в user-agent указано что это программа. Это ограничение можно обойти, если в настройках выставить юзер-агент поисковой системы, например. Для этого переходим в Configuration> User-Agent и выбрать YandexBot или Googlebot.
  2. Запрет в robots.txt. Для обхода этого запрета нужно перейти в настройки Screaming Frog в Configuration> Robots.txt> Settings и выбирать «Игнорировать robots.txt»
  3. Бан по IP. Тут есть несколько вариантов решения проблемы: использовать VPN или в настройках снизить скорость парсинга сайта, чтобы не вызывать подозрения и не попасть под ограничения.

Как научиться понимать XPath и составлять запросы правильно?

Первым что необходимо сделать – это изучить базовый синтаксис XPath, в сети много статей на этот случай и достаточное кол-во примеров парсинга различны элементов. Давайте разберем несколько простых примеров, которые помогут вам понять основу языка XPath:

Разберем составные запроса XPath на примере //div[@class=»default__button2 center»]/input/@value, этот запрос парсит название кнопки:

как парсить элементы сайта

Как же это происходит:

Если вы используете спайдер, например Screaming Frog Seo Spider, то там есть настройка что именно парсить: весь код или только текстовое значение, если же вы парсите при помощи Гугл таблиц, то нам нужно указать /text(), чтобы спарсился только текст кнопки, без лишнего кода:

//div[@class=»default__button2 center»]/input/@value/text()

Теперь, когда мы разобрались с базовыми атрибутами языка XPath, давайте на реальных примерах используем полученные знания и спарсим цены и УРЛ изображений товаров.

Пример №1. Парсинг цены

Есть немало вариантов и программ при помощи, которых можно анализировать ценовую политику конкурентов, но половина из них работает непонятно как, вторая половина платная и т.д. Вот здесь на помощь и приходит парсинг цен конкурентов при помощи XPath. Возьмем для примера сайт https://shishastore.com.ua/.

У нас есть вот такая типичная карточка товара, где есть 2 варианта цен – обычная и для заведений.

Парсинг цен у конкурентов

Для начала нам нужно понять в каком теге/классе состоит блок цены в карточке товара. Для этого нужно посмотреть код блока, в Chrome это делается при наведении на нужный элемент и по нажатию на правую кнопку мыши, дальше выбираем «Посмотреть код»:

Посмотреть код

Видим, что цена у нас состоит в теге <span> с классом price-news, вместе с этим замечаем, что есть еще и тег для старой цены (в данном товаре ее нет), его мы тоже спарсим для полноты картины, что покажет нам на какие товары и какие скидки делает конкурент.

Теперь нам нужно аналогично узнать данные для блока «Цена для заведений», повторяем действия:

Парсинг цен конкурентов

Итого мы имеем:

Как сделать XPath и использовать его в парсерах?

Как сделать XPath?
Скопировав XPath, мы получаем следующий страшный код://*[@id=»product»]/div[1]/div[1]/p[2]/span[1]Этот вариант простейший, но не очень надежный, так как расположение одного и того же элемента в коде может отличаться из-за наличия или отсутствия других элементов в карточке товара и т.д. Поэтому нужно использовать второй способ.

Для того что бы сделать наш вариант XPath нужно использовать следующий элемент: // — это значит любое кол-во любых элементов

Составив XPath по правилам, мы получаем готовые варианты для парсинга цен:

Куда вписывать XPath-запрос?

Для этого нам нужен один из спайдеров (парсеров). В данном случае это Screaming Frog Seo Spider.

Заходим в Configuration -> Custom -> Extraction:

Куда вписывать XPath-запрос?

Дальше наши XPath нужно вписать в соответствующие строки и обязательно ставим справа опцию «Extract Text» если вам нужен только текст блока, а не весь его код:

Таким образом мы обращаемся к коду заданных страниц, спайдер в коде ищет нужный элемент, вне зависимости от его расположения и тащит из него текст. Результат будет таким:

Результат парсинга

Пример №2. Парсинг изображений

Задача – спарсить адреса изображений товаров. Рассмотрим на примере все того же сайта https://shishastore.com.ua/. И так, уже известным нам способом ищем в каком элементе расположена картинка товара:

Изображения состоят в элементе <a>, у которого class — thumbnail. Составляем XPath-запрос:

//*[@id=»thumbnail-big»]/img/@src

Здесь мы имеет тег <a> с классом thumbnail, далее идут различные внутренние элементы, которые мы исключаем звездочкой «*». После этого идет тег img из которого нам нужно вытащить ссылку, то есть содержимое тега src.

Берем составленный XPath-запрос, в Screaming Frog переходим в Configuration > Custom > Extraction и парсим. Результат получаем следующий:

Парсинг изображений

Теперь мы можем запустить парсинг по всему сайту и получить все УРЛ изображений товаров.

Александр Романенко SEO специалист
похожие статьи
подписаться:
Как отклонить нежелательные внешние ссылки с Google Disavow Links Tool?
Как отклонить нежелательные внешние ссылки с Google Disavow Links Tool?
# SEO
Что такое продвижение по трафику
Что такое продвижение по трафику
# SEO
Neeva: утопия или революция в мире поисковых систем?
Neeva: утопия или революция в мире поисковых систем?
# SEO
Комментарии