Что такое Веб-скрапинг?
В широком понимании веб-скрапинг — это сбор данных с различных интернет-ресурсов. Общий принцип его работы можно объяснить следующим образом: некий автоматизированный код выполняет GET-запросы на целевой сайт и получая ответ, парсит HTML-документ, ищет данные и преобразует их в заданный формат.
Существует масса решений для скрпаинга веб-сайтов. Среди них:
Существует масса решений для скрпаинга веб-сайтов. Среди них:
- Отдельные сервисы, которые работают через API или имеют веб-интерфейс (Embedly, DiffBot и др.).
- Проекты с открытым кодом, на разных языках программирования (Goose, Scrapy — Python; Goutte — PHP; Readability, Morph — Ruby ).
- Ни один сайт не имеет идеальной верстки с точки зрения догматов веб-дизайна. Именно это делает каждый сайт уникальным и привлекательным для пользователей.
- Каждый веб-разрабочик (если он не работает в солидной IT компании со своими правилами и стайл гайдами) пишет код под себя или просто, как умеет. Далеко не всегда код получается грамотным и качественным. Зачастую в нем можно найти огромное количество ошибок. В том числе грамматических. Все это делает “самописный” код абсолютно нечитаемым для скраперов (речь, в первую очередь, идет о верстке).
- Масса веб-ресурсов использует HTML5, где каждый элемент может быть абсолютно уникальным.
- Некоторые ресурсы содержат разнообразные защиты от копирования данных, а значит и от скрапинга. Это выражается в многоуровневой верстке, использовании jаvascript для рендеринга контента, проверки user-agent и т.д.
- В зависимости от сезона или тематики целевого материала на сайте могут быть использованы разные макеты. Периодически это касается даже типичных страниц (сезонные акции, премиум статьи и т.д.).
- Кроме полезных блоков, веб-страница часто изобилует “мусором” в виде рекламы, комментариев, дополнительных элементов навигации и т.д.
- Исходный код может содержать ссылки на одни и те же картинки разных размеров, например — для превью.
- Сайт может определить страну, в которой находится ваш сервер и отдать информацию не на английском языке.
- У всех сайтов может быть разная кодировка, которая не отдается в ответе на запрос.
Статьи и советы
06.06.20, 08:55