Парсер сайта: как собрать данные из интернета

3 минуты чтения

Копировать цены с сайта поставщика в таблицу вручную можно, пока товаров двадцать. Если их две тысячи, на это уходит неделя, и опечатки всё равно остаются. Парсер сайта (его ещё называют скрейпером) — небольшая программа, которая сама открывает страницы, берёт с каждой одни и те же данные и сохраняет их в таблицу. Вот что он умеет, что подготовить и каких правил придерживаться.

Парсер сайта собирает данные в таблицу

Для чего нужен парсер

Парсер полезен везде, где однотипная информация лежит на множестве похожих страниц:

  • Цены и наличие. Следите, как меняются цены поставщика или каких товаров нет в наличии.
  • Каталог поставщика. Перенесите названия, описания, картинки и цены в свой магазин.
  • Объявления. Соберите объявления о недвижимости, машинах или вакансиях с открытой доски в одну таблицу.
  • События и статьи. Соберите даты, заголовки и ссылки из открытого календаря или ленты новостей.

Собирайте только то, что разрешено

Прежде всего проверьте, что эти данные можно брать:

  • Только открытые страницы. Если для просмотра данных нужно войти в аккаунт, парсер — неподходящий инструмент.
  • Прочитайте правила сайта. Многие сайты пишут, что можно собирать, а что нельзя. Крупные платформы, поисковые системы и соцсети обычно это запрещают; пользуйтесь их официальной выгрузкой или API.
  • Соблюдайте ограничения на частоту запросов. Пауза в несколько секунд между страницами держит нагрузку на сайт низкой. Никогда не пытайтесь обойти капчу или блокировки.
  • Соблюдайте законы о персональных данных. Имена, адреса почты и телефоны людей — это персональные данные, и во многих странах их сбор строго ограничен. Не собирайте их.

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

Опишите страницы

Парсер пишется под реальную структуру страниц, поэтому будьте точны:

  • Ссылка на страницу списка и ссылка на страницу одного товара.
  • Примерно сколько страниц, например «около 40 страниц каталога по 24 товара на каждой».
  • Одна-две страницы, сохранённые из браузера (Файл > Сохранить страницу как), или их скриншоты.

Перечислите поля как столбцы таблицы

Представьте результат в виде таблицы и назовите её столбцы по порядку, с примером для каждого:

  • Название: «Разделочная доска из дуба, большая»
  • Цена: «34.90»
  • Старая цена: «39.90», если товар со скидкой
  • В наличии: «да»
  • Ссылка на страницу товара и ссылка на картинку

Десять понятных полей лучше тридцати размытых. Добавьте нужные правила, например «только товары в наличии».

Выберите формат и где запускать

  • CSV открывается в любой таблице и импортируется в большинство платформ для магазинов.
  • Excel удобнее, если вы будете фильтровать и сортировать вручную.
  • JSON подходит разработчику, который загрузит данные куда-то ещё.

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

Когда сайт меняется

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

Коротко

Решите, какие открытые страницы и поля вам нужны, проверьте правила сайта, держите вежливый темп и не собирайте персональные данные. Если не хотите писать код сами, закажите парсер сайта: вы отправляете сайт, поля и одну-две сохранённые страницы, а получаете код на Python, файл настроек и пошаговую инструкцию, как запустить его и получить данные в CSV, Excel или JSON. Оплата переходит сервису только после того, как вы примете работу.