Если вам нужно просто собрать с сайта метаданные, можно воспользоваться бесплатным парсером Promopult. Но бывает, что надо копать гораздо глубже и добывать больше данных, и тут уже без сложных (и небесплатных) инструментов не обойтись.
Рассказываем, как спарсить любой сайт, даже если вы совсем не дружите с программированием. Разбор сделан на примере Screaming Frog Seo Spider.
Оглавление
Что такое парсинг и зачем он нужен
Парсинг нужен, чтобы собрать данные с различных ресурсов. Например, собрать данные о ценах конкурентов. Еще один способ применения — это наполнение каталога новыми товарами на основе уже существующих сайтов в интернете.
Упрощенно, парсинг — это сбор структурированной информации. Чаще всего — в виде таблицы с конкретным набором данных. Например, данных по характеристикам товаров. Есть более сложные определения, но так как мы даем инструкцию «для чайников», то нет никакого смысла усложнять терминологию.
Парсер — программа, которая осуществляет этот сбор. Она обходит указанные URL и собирает нужную информацию в Excel-файл либо куда-то еще.
Парсинг работает на основе XPath-запросов. XPath — язык запросов, который обращается к определенному участку страницы и собирает из него заданную информацию.
ПО для парсинга
Здесь есть важный момент. Если вы введете в поисковике слово «парсинг» или «заказать парсинг», то, как правило, увидите услуги от компаний, которые создадут парсер под ваши задачи. Стоят такие услуги относительно дорого. В результате программисты под заказ напишут некую программу либо на Python, либо на каком-то еще языке, которая будет собирать нужные данные с выбранного ресурса. Эта программа нацелена только на сбор конкретных данных, она не гибкая и без знаний программирования вы не сможете ее самостоятельно перенастроить для других задач.
При этом есть готовые решения, которые можно под себя настраивать как угодно и собирать что угодно. Более того, если вы — SEO-специалист, возможно, одной из этих программ вы уже пользуетесь, но просто не знаете, что в ней есть такой функционал. Либо знаете, но никогда не применяли, либо применяли не в полной мере.
В рамках этой статьи рассмотрим Screaming Frog SEO Spider. Эта программа занимается сбором информации с сайта. То есть анализирует, например, его заголовки, теги и всё остальное. Помимо прочего, она позволяет собрать те данные, которые вы зададите.
Профессиональные инструменты PromoPult: быстрее, чем руками, дешевле, чем у других, бесплатные опции.
Съем позиций, кластеризация запросов, парсер Wordstat, сбор поисковых подсказок, сбор фраз ассоциаций, парсер метатегов и заголовков, анализ индексации страниц, генератор из YML, парсер ИКС Яндекса, нормализатор и комбинатор фраз, парсер сообществ и пользователей ВКонтакте, AI генератор изображений.
Реклама. ООО «Клик.ру», ИНН:7743771327, ERID: 2Vtzqur3WXR
Давайте смотреть на реальных примерах.
Быстрый старт с Screaming Frog
Screaming Frog SEO Spider — один из самых удобных инструментов для парсинга сайтов. У него простой интерфейс, много фильтров и настроек для парсинга. Программа подходит для работы как с небольшими сайтами, так и с крупными проектами. Устанавливается на Windows, macOS и Linux, интерфейс доступен на английском.
Загрузка и лицензия
Screaming Frog можно скачать бесплатно с официального сайта. Бесплатная версия ограничена 500 URL-адресами на один запуск — этого достаточно для тестов и небольших проектов. Чтобы убрать лимит и использовать расширенные функции, потребуется лицензия стоимостью $279 в год. Одна лицензия выдается на одного пользователя.
Купленный ключ нужно активировать через меню Licence → Enter Licence.
Введите имя пользователя и полученный ключ.
Режимы работы
Инструмент поддерживает несколько режимов работы:
- Spider — базовый режим. Он сканирует весь сайт, начиная с указанного URL, переходит по внутренним ссылкам, собирает данные о страницах и всех ссылках, а затем выстраивает полную карту сканируемого проекта. Полезен, когда нужно провести полный SEO-аудит, найти битые страницы, проанализировать структуру сайта, метаданные и перелинковку.
- List — режим проверки сайта по конкретному списку страниц. Загрузить список URL можно через файл .txt, .csv, .xlsx или вручную. Также можно проанализировать сайт по XML-карте, для этого нужно выбрать Upload → Download Sitemap.
- Compare — режим для сравнения двух сканирований сайта. Он помогает быстро увидеть изменения: появились ли новые страницы, пропали ли старые, изменились ли метатеги, заголовки или коды ответов. Например, можно сравнить мобильную и десктопную версии сайта, тестовую и основную, или просто два аудита, проведенные в разное время.
- SERP — позволяет загружать список URL в CSV или XLS и просматривать, как будут выглядеть сниппеты этих страниц в поисковой выдаче. Полезно для анализа мета-заголовков и описаний, особенно при SEO-оптимизации.
- APIs — режим интеграции с внешними сервисами. Парсер может подключаться к Google Analytics, Search Console, PageSpeed Insights, Ahrefs и другим источникам данных. При сканировании инструмент добавляет информацию из этих систем — например, данные о трафике, кликах, ссылках и показателях производительности страниц.
Базовые настройки для быстрого старта
1. Включите загрузку JavaScript. Тогда инструмент будет «видеть» всю информацию на странице так же, как обычный пользователь в браузере. Без этой опции парсер может пропустить динамически подгружаемый контент — цены, описания, отзывы и ссылки. Для включения JS откройте меню Configuration → Spider → Rendering → JavaScript Rendering.
2. Установите лимиты и глубину сканирования. Откройте меню Configuration → Spider → Limits. Задайте Limit Crawl Total — максимальное число страниц, которые будут просканированы, и Limit Crawl Depth — ограничение глубины ссылок от стартовой страницы. Параметры зависят от размера и структуры сайта.
3. Выберите подходящий User-Agent. Screaming Frog при сканировании идентифицирует себя как определенный бот. Чтобы сайты не блокировали парсер и результаты были точными, выберите в Configuration → User-Agent подходящий вариант, например YandexBot или Googlebot.
4. Отключите ненужные элементы для ускорения сканирования. Если вам не нужны изображения, CSS или внешние ссылки, перейдите в Configuration → Spider и снимите галочки с опций Images, CSS, External Links. Это сэкономит ресурсы и ускорит работу.
5. Настройте скорость сканирования. В Configuration → Speed можно ограничить количество одновременных соединений и задержку между запросами. Это снизит риск блокировки со стороны сайтов и уменьшит нагрузку на сервер.
6. Настройте автосохранение. В меню Configuration → Save → Auto Save включите автоматическое сохранение данных после сканирования, чтобы не потерять результаты при сбое или закрытии программы.
Пример 1. Как спарсить цену
Предположим, вы хотите с веб-ресурса собрать все цены товаров. Это ваш конкурент, и вы хотите узнать, сколько у него стоят товары.
Возьмем для примера проект mosdommebel.ru.
У нас есть страница карточки товара, есть название и есть цена этого товара. Как нам собрать эту цену и цены всех остальных товаров?
Мы видим, что цена отображается вверху справа, напротив заголовка h1. Теперь нам нужно посмотреть, как эта цена отображается в HTML.
Нажимаем правой кнопкой мыши прямо на цену (не просто на какой-то фон или пустой участок). Затем выбираем пункт Inspect Element для того, чтобы сразу его определить (Исследовать элемент или Просмотреть код элемента, в зависимости от браузера — прим. ред.).
Мы видим, что цена у нас помещается в тег с классом totalPrice2. Так разработчик обозначил стоимость данного товара, которая отображается в карточке.
Фиксируем: есть некий элемент span с классом totalPrice2. Пока это держим в голове.
Есть два варианта работы с парсерами.
Первый способ. Вы можете прямо в коде (любой браузер) нажать правой кнопкой мыши на тег и выбрать Скопировать > XPath. У вас таким образом скопируется строка, которая обращается к данному участку.
Выглядит она так:
/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]
Но этот вариант не очень надежен: если у вас в другой карточке товара верстка выглядит немного иначе (например, нет каких-то блоков или блоки расположены по-другому), то такой метод обращения может ни к чему не привести. И нужная информация не соберется.
Поэтому мы будем использовать второй способ. Есть специальные справки по языку XPath. Их очень много, можно просто загуглить «XPath примеры».
Например, такая справка:
Здесь указано как что-то получить. Например, если мы хотим получить содержимое заголовка h1, нам нужно написать вот так:
//h1/text()
Если мы хотим получить текст заголовка с классом productName, мы должны написать вот так:
//h1[@class=”productName”]/text()
То есть поставить «//» как обращение к некому элементу, написать тег h1 и указать в квадратных скобках через символ @ «класс равен такому-то».
То есть не копировать что-то и не собирать информацию по частям. А написать строку запроса, который обращается к нужному элементу. Куда ее написать — сейчас мы разберемся.
Куда вписывать XPath-запрос
Мы идем в Screaming Frog Seo Spider.
Предположим, вы оплатили годовую лицензию и получили доступ к полному набору функций сервиса. Если вы серьезно занимаетесь анализом данных и регулярно нуждаетесь в функционале сервиса — это разумная трата денег.
Во вкладке меню Configuration у нас есть подпункт Custom, и в нем есть еще один подпункт Extraction. Здесь мы можем дополнительно что-то поискать на тех страницах, которые мы укажем.
Заходим в Extraction. Нам нужно с сайта Московского дома мебели собрать цены товаров.
Мы выяснили, что у нас все цены на карточках товара обозначаются тегом с классом totalPrice2. Формируем вот такой XPath запрос:
//span[@class=”totalPrice2″]/span
И указываем его в разделе Configuration > Custom > Extractions. Для удобства можем назвать как-нибудь колонку, которая у нас будет выгружаться. Например, «стоимость»:
Таким образом мы будем обращаться к коду страниц и из него вытаскивать содержимое стоимости.
Также в настройках мы можем указать, что парсер будет собирать: весь HTML или только текст. Нам нужен только текст, без разметки, стилей и других элементов.
Нажимаем ОК. Мы задали кастомные параметры.
Как подобрать страницы для парсинга
Дальше есть еще один важный этап — подбор страниц, по которым будет осуществляться парсинг.
Если мы просто укажем адрес ресурса, парсер пойдет по всем страницам. На инфостраницах и разделах у нас нет цен, а нам нужны именно цены, которые указаны на карточках товара. Чтобы не тратить время, лучше загрузить в парсер конкретный список url-адресов, по которым мы будем ходить, — карточки товаров.
Откуда их взять? Как правило, на большинстве ресурсов есть карта сайта XML, и находится она чаще всего по адресу: «адрес сайта/sitemap.xml». В случае с проектом из нашего примера — это адрес:
https://www.mosdommebel.ru/sitemap.xml.
Либо вы можете зайти в robots.txt (site.ru/robots.txt) и посмотреть. Чаще всего в этом файле внизу содержится ссылка на карту сайта.
Даже если карта называется как-то странно, необычно, нестандартно, вы все равно увидите здесь URL.
Но если не увидите — если Sitemap нет — то нет никакого решения для отбора карточек товара. Тогда придется запускать стандартный режим в парсере — он будет ходить по всем разделам сайта. Но нужную вам информацию соберет только на карточках товара. Минус здесь в том, что вы потратите больше времени и дольше придется ждать нужных данных.
У нас карта сайта есть, поэтому мы переходим по ссылке https://www.mosdommebel.ru/sitemap.xml и видим, что сама карта разделяется на несколько карт. Отдельная карта по статичным страницам, по категориям, по продуктам (карточкам товаров), по статьям и новостям.
Нас интересует карта продуктов, то есть карточек товаров.
Возвращаемся в Seo Spider. Сейчас он запущен в стандартном режиме, в режиме Spider (паук), который ходит по всему ресурсу и анализирует все разделы. Нам нужно его запустить в режиме List.
Мы загрузим ему конкретный список адресов, по которому он будет ходить. Нажимаем на вкладку Mode и выбираем List.
Жмем кнопку «Upload» и кликаем по «Download Sitemap».
Указываем адрес Sitemap карточек товара, нажимаем ОК.
Программа скачает все URL, указанные в Sitemap. В нашем случае парсер обнаружил более 40 тысяч ссылок на карточки товаров:
Нажимаем ОК, и у нас начинается процесс сбора ссылок.
После завершения процесса на первой вкладке Internal мы можем посмотреть информацию по всем характеристикам: код ответа, индексируется/не индексируется, title, description и все остальное.
Это все полезная информация, но мы шли за другим.
Вернемся к исходной задаче — посмотреть стоимость товаров. Для этого в интерфейсе программы нам нужно перейти на вкладку Custom. Чтобы попасть на нее, нужно нажать на стрелочку, которая находится справа от всех вкладок. Из выпадающего списка выбрать пункт Custom.
И на этой вкладке из выпадающего списка фильтров (Filter) выберите Extraction.
Вы как раз и получите ту самую информацию, которую хотели собрать: список карточек и колонка «Стоимость 1» с ценами в рублях.
Задача выполнена, теперь все это можно выгрузить в xlsx или csv-файл.
После выгрузки стандартной заменой вы можете убрать букву «р», которая обозначает рубли. Просто, чтобы у вас были цены в чистом виде, без пробелов, буквы «р» и прочего.
Таким образом, вы получили информацию по стоимости товаров у сайта-конкурента.
Если бы мы хотели получить что-нибудь еще, например, дополнительно еще собрать названия этих товаров, то нам нужно было бы зайти снова в Configuration > Custom > Extraction. И выбрать после этого еще один XPath-запрос и указать, например, что мы хотим собрать тег
Просто запустив еще раз процесс, мы собираем уже не только стоимость, но и названия товаров.
В результате получаем такую связку: URL товара, его стоимость и название этого товара.
Если мы хотим получить описание или что-то еще — продолжаем в том же духе.
Важный момент: h1 собрать легко. Это стандартный элемент html и для его парсинга можно использовать стандартный XPath-запрос (посмотрите в справке). В случае же с описанием или другими элементами нам нужно всегда возвращаться в код страницы и смотреть: как называется сам тег, какой у него класс/id либо какие-то другие атрибуты, к которым мы можем обратиться с помощью XPath-запроса.
Например, мы хотим собрать описание. Нужно снова идти в Inspect Element.
Оказывается, все описание товара лежит в теге