Веб-скрапинг — что это и как он работает
Любой веб-ресурс становится ценным и посещаемым только при наличии полезного, интересного пользователям и уникального контента. “Кто владеет информацией, тот владеет миром”, — простая истина, без осознания которой невозможно стать успешным бизнесменом (равно как и политиком или любым другим специалистом). Вспомните цитату Билла Гейтса: “В будущем на рынке останется два вида компаний: те, кто в Интернете и те, кто вышел из бизнеса”. Пожалуй, сегодня ее тоже можно назвать прописной истиной.
Всеобщие глобальные тенденции приближают нас к тому дню, когда все операции и торговые сделки будут проходить с использованием всемирной паутины. Для того же, чтобы успешно вписаться в новый порядок, очень важно получать актуальные данные о движения рынка (динамика цен и товаров) и локальные новости, которые порой всецело влияют на формирование спроса, своевременно.
Сегодня объемы информации превосходят возможности их обработки у любого даже самого талантливого человека или узкопрофильного специалиста. И в этом нет ничего противоестественного. Такова жизнь. Поэтому для автоматического сбора и обработки больших объемов информации был придуман скрапинг (он же — парсинг) веб-сайтов.
Веб-скрапинг — что это?
Web Scraping — это автоматическое извлечение данных с веб-страниц в соответствии с заданными параметрами.
Специальная программа сканирует сайт и копирует его данные: тексты, изображения, аудиофайлы и так далее. Затем систематизирует их и сохраняет, к примеру, в таблицу формата CSV. Таким образом, можно выгрузить целый каталог интернет-магазина, библиотеку или любую другую базу данных. Конечно, если она находится в открытом веб-доступе.
Web Scraping не всегда используют для заранее выбранных ресурсов. Так, бывают ситуации, когда нужно собрать конкретные типы данных, но на каких сайтах они находятся — неизвестно. В таких случаях используют поискового бота, или краулера. Он ищет нужные данные в интернете, а после этого сообщает о них скрейперу — программе, которая непосредственно занимается извлечением. Краулеры и скрейперы разрабатывают индивидуально под нужды каждого конкретного проекта.
Некоторые ресурсы сами предоставляют быстрый доступ к данным через API. Например, интернет-магазин таким образом может делиться снимками и характеристиками товаров из своего каталога с партнерами. Если же подобной функциональности не предусмотрено, на помощь приходит Web Scraping.
В широком понимании website scraping (веб-скрапинг) — это сбор данных с различных интернет-ресурсов. Общий принцип его работы можно объяснить следующим образом: некий автоматизированный код выполняет GET-запросы на целевой сайт и получая ответ, парсит HTML-документ, ищет данные и преобразует их в заданный формат. Заметим, что к категории полезных данных могут относиться:
- каталог товаров;
- изображения;
- видео;
- текстовый контент;
- открытые контактные данные — адреса электронной почты, телефоны и т.д.
Существует масса решений для скрапаинга веб-сайтов. Среди них:
- Отдельные сервисы, которые работают через API или имеют веб-интерфейс (Embedly, DiffBot и др.).
- Проекты с открытым кодом, на разных языках программирования (Goose, Scrapy — Python; Goutte — PHP; Readability, Morph — Ruby ).
Кроме того, всегда есть возможность изобрести велосипед и написать собственное решение. Например, с использованием библиотеки Nokogiri (для языка программирования Ruby).