Как SEO-специалисту эффективно использовать XPath?

Всем привет! Меня зовут Алексей Сидей, я основатель агентства интернет-маркетинга «WEDEX» и один из авторов телеграм канала «Интернет-маркетинг простым языком».

SEO-специалисты используют разные инструменты, чтобы проанализировать сайт и получать данные для дальнейшего анализа. Это необходимо для составления стратегии продвижения. Один из таких инструментов – XPath. Разберемся, зачем и как он используется.

Что собой представляет XPath и зачем он нужен?

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

XPath представляет собой специальный язык в виде запросов, который обращается к элементам HTML и XML документов на странице. Он относится к декларируемому классу. Это означает, что для получения результатов и извлечения требуемой информации достаточно объявить сам запрос. Все остальные операции выполнит интерпретатор.

Возможности и правила использования

XPath – это простой и удобный инструмент для SEO-специалистов. Разберемся в основных функциональных возможностях языка и особенностях его использования.

Данные для парсинга

С помощью парсинга можно получить такие данные:

  • Информация о программном коде практически любого сайта. Это верно при условии, если сайт не использует защиту от парсинга. Некоторые страницы Яндекса или Авито закрыты для парсинга. При этом большую часть ресурсов парсить разрешается.

  • Структура страницы, отзывы и другая сопутствующая информация.

  • Стоимость и прочие характеристики товаров в интернет-магазинах.

  • Контактная информация, дополнительные данные.

Все эти сведения можно парсить. После этого они выгружаются в удобном формате, например, Excel.

Ограничения парсинга

Есть некоторые ограничения:

  1. Запрет no user-agent. Данный программный код запрещает доступ для парсинга страниц. Такое ограничение обойти просто, выставив значение агента любого доступного поисковика. Необходимо в параметрах указать бота Яндекса или Google.
  2. Запрет в документе robots.txt. Здесь необходимо перейти в настройки документа, чтобы включить игнорирование данного запрета.
  3. Запрет доступа по IP. Можно воспользоваться несколькими способами. Например, снизить скорость считывания данных или включить VPN, чтобы не вызывать подозрений со стороны изучаемого сайта.

Как видно, большую часть ограничений можно обойти.

Правильное составление запросов

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

  • //h1[@class="bottom"]/text() – указан заголовок первого уровня, который принадлежит классу bottom;

  • //input[@class="click"]/@title – кнопка click, которая включена в элемент названия страницы;
  • //img/@src – получение адреса ссылки из изображения;
  • //a/text() – извлечение из ссылки текстовой информации;
  • //span[@class="color"] – извлечение элемента span, который относится к классу color;
  • //h1/text() – получает заголовок страницы в виде текстовой информации;
  • //a/@href – получение адреса ссылки из определенной строки;
  • //div[4]/img/@src – получение картинки из четвертого в очереди div.

Для парсинга названия кнопки рассмотрим отдельный пример. Он выглядит следующим образом: //div[@class="default__button2 center"]/input/@value.

Как SEO-специалисту эффективно использовать XPath?

Описанную строку можно расшифровать таким образом:

  • //div – этот элемент означает, что чтение начинается непосредственно со следующего элемента с игнорированием предыдущих, блок идентифицирует непосредственно рассматриваемую кнопку;
  • выражение в квадратных скобках обозначает конкретную особенность искомого элемента – кнопки;
  • /input – обозначает непосредственно входную информацию;
  • последнее значение указывает, какую информацию требуется получить из искомого элемента.

При использовании спайдера можно настроить непосредственно конкретный элемент для парсинга. Если используются Google-таблицы для этого, то нужно дополнительно после значения указать элемент строковой информации /text(), чтобы получить исключительно информацию о кнопке.

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

Пример 1. Парсинг стоимости

Рассмотрим сайт https://shishastore.com.ua/, где представлены разные товары. Существует множество разных вариантов и способов парсинга. Мы рассмотрим наиболее простые и понятные алгоритмы при помощи XPath.

На рассматриваемом сайте представлены две карточки товара на одну продукцию. Одна предназначена для оптовых покупок заведений, а вторая – обычная.

Как SEO-специалисту эффективно использовать XPath?

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

Как SEO-специалисту эффективно использовать XPath?

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

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

Как SEO-специалисту эффективно использовать XPath?

В результате мы получили такие данные:

  • теги с новыми ценами;
  • теги со старыми ценами;
  • стоимость по заведениям.

Все классы можно увидеть на изображениях.

Использование XPath в нескольких парсерах

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

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

Есть и другой метод.

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

Для ссылки необходимо использовать обозначение //, которое означает любые возможные элементы из множества. Например, можно сделать такой вариант для парсинга цены: //span[@class="price-news"]. В таком случае нет привязки к конкретной цене.

Запись запроса

Для получения и записи запроса потребуется использовать специальное программное обеспечение – спайдер. Это может быть Screaming Frog Seo Spider, который использован в данном примере. Необходимо перейти в меню параметров, выбрать пользовательские настройки и указать тип операции – извлечение как на картинке.

Как SEO-специалисту эффективно использовать XPath?

Теперь необходимо обязательно вписать строки XPath, чтобы извлечь требуемые данные. В этом случае потребуется только отдельный элемент блока.

Как SEO-специалисту эффективно использовать XPath?

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

Как SEO-специалисту эффективно использовать XPath?

Пример 2. Парсинг картинок

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

Как SEO-специалисту эффективно использовать XPath?

Для извлечения картинок необходимо составить код XPath. Он выглядит следующим образом: //*[@id="thumbnail-big"]/img/@src. Здесь извлекаются все элементы, которые принадлежат к классу thumbnail-big. При этом все внутренние элементы исключены. Также дополнительно извлекается ссылка по изображениям.

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

Как SEO-специалисту эффективно использовать XPath?

Теперь можно спарсить все страницы сайта, чтобы получить ссылки на все картинки.

3030
11 комментариев

Поддержу лайками.
Тема правильная, материал полезный, надо больше таких.

4
Ответить

Пробовал парсить данные этим методом, но как оказалась, о половины возможностей не подозревал) Автору отдельное спасибо! Сама статья написана простым доходчивым языком без лишней технической нагрузки. Думаю, что с такими примерами теперь и школьник сможет разобраться)

2
Ответить

Всем добрый день.
Есть вопрос по теме: сайт на Ajax, и насколько я понимаю браузер генерит страницу у меня, а не получает с сервера. Пытаюсь через хпас в Гугл таблицу тянуть цены поставщика, но адреса в строке запроса "не найдено".
Как быть в такой ситуации? Человек занимающийся парсингом сказал "как два пальца..., но чуть дороже", а значит механизм парсинга такого добра существует.
Просьба не пинать сильно - я не из сео, я со стороны заказчика тут.

Ответить

Не находит потому что в исходом коде нет (по Ctrl-U)
А подгружается скриптами, после рендера страницы
Соотв нужно использовать эмулятор браузера, тот же Chromium

Если пишите например на Delphi, то https://github.com/salvadordf/CEF4Delphi
Для веба тоже есть аналоги

1
Ответить

Норм, новичкам самое то. А так, до кучи, есть еще варианты помимо XPath - как минимум RegEx, CSSPath, XQuery

Ответить

"где этот инвалид? ..." (С)
Ну я инв.... зачеркнуто, новичок, можно поподробнее. RegEx изучаю, к xpath вопросов нет. По остальным вопросы есть

Ответить

Спасибо)

Ответить