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

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

Для чего нужен парсер
Парсер полезен везде, где однотипная информация лежит на множестве похожих страниц:
- Цены и наличие. Следите, как меняются цены поставщика или каких товаров нет в наличии.
- Каталог поставщика. Перенесите названия, описания, картинки и цены в свой магазин.
- Объявления. Соберите объявления о недвижимости, машинах или вакансиях с открытой доски в одну таблицу.
- События и статьи. Соберите даты, заголовки и ссылки из открытого календаря или ленты новостей.
Собирайте только то, что разрешено
Прежде всего проверьте, что эти данные можно брать:
- Только открытые страницы. Если для просмотра данных нужно войти в аккаунт, парсер — неподходящий инструмент.
- Прочитайте правила сайта. Многие сайты пишут, что можно собирать, а что нельзя. Крупные платформы, поисковые системы и соцсети обычно это запрещают; пользуйтесь их официальной выгрузкой или API.
- Соблюдайте ограничения на частоту запросов. Пауза в несколько секунд между страницами держит нагрузку на сайт низкой. Никогда не пытайтесь обойти капчу или блокировки.
- Соблюдайте законы о персональных данных. Имена, адреса почты и телефоны людей — это персональные данные, и во многих странах их сбор строго ограничен. Не собирайте их.
В итоге решение, можно ли собирать и использовать данные сайта, принимаете вы, поэтому проверьте всё до начала работы.
Опишите страницы
Парсер пишется под реальную структуру страниц, поэтому будьте точны:
- Ссылка на страницу списка и ссылка на страницу одного товара.
- Примерно сколько страниц, например «около 40 страниц каталога по 24 товара на каждой».
- Одна-две страницы, сохранённые из браузера (Файл > Сохранить страницу как), или их скриншоты.
Перечислите поля как столбцы таблицы
Представьте результат в виде таблицы и назовите её столбцы по порядку, с примером для каждого:
- Название: «Разделочная доска из дуба, большая»
- Цена: «34.90»
- Старая цена: «39.90», если товар со скидкой
- В наличии: «да»
- Ссылка на страницу товара и ссылка на картинку
Десять понятных полей лучше тридцати размытых. Добавьте нужные правила, например «только товары в наличии».
Выберите формат и где запускать
- CSV открывается в любой таблице и импортируется в большинство платформ для магазинов.
- Excel удобнее, если вы будете фильтровать и сортировать вручную.
- JSON подходит разработчику, который загрузит данные куда-то ещё.
Парсер запускается на вашем компьютере с Python, поэтому данные попадают прямо к вам, и вы можете запустить его снова, когда понадобятся свежие цифры.
Когда сайт меняется
Парсер работает со страницами такими, какие они сегодня. Если у сайта появится новый дизайн, парсер может перестать находить поля, и его придётся обновить. Сайт может ограничивать посещения даже при вежливом темпе. Учитывайте это, если вам нужны данные каждую неделю.
Коротко
Решите, какие открытые страницы и поля вам нужны, проверьте правила сайта, держите вежливый темп и не собирайте персональные данные. Если не хотите писать код сами, закажите парсер сайта: вы отправляете сайт, поля и одну-две сохранённые страницы, а получаете код на Python, файл настроек и пошаговую инструкцию, как запустить его и получить данные в CSV, Excel или JSON. Оплата переходит сервису только после того, как вы примете работу.