В данном материале мы детально разберём разницу между двумя концепциями анализа данных, которые размещаются на различных источниках в сети (на веб-сайтах), покажем для чего, когда и какие методы применяются, в чём их преимущества и недостатки.
Что такое скрапинг (парсинг) данных?
Данные не всегда записаны в том виде, в котором их удобно обрабатывать. Простой пример — сложный и нечитаемый адрес сайта на бумажной визитке менеджера. Получается, чтобы клиент мог обратиться к этим данным (преобразовать из нарисованного вида в символьный ввод внутри адресной строки браузера), буквы, цифры и другие знаки нужно вручную набрать на клавиатуре.
Но формат можно изменить, нанеся на визитку QR-код или используя NFC-метку. Тогда нужную информацию можно будет легко прочитать с помощью специальных программ. И пользователь не ошибётся, и процесс ввода будет проходить заметно быстрее.
Примерно такая же ситуация бывает, когда искомые данные, хранящиеся на жестком диске компьютера, находятся фактически в «нечитаемом» виде, то есть, несовместимом с программами. Ведь каждая программа рассчитана на чтение только тех форматов, которые предусмотрели её разработчики. А если имеющиеся форматы не поддерживаются, то и прочитать файл программа не сможет.
Теперь ещё пример: представьте, что вам нужно собрать базу email-адресов, но они хранятся внутри PDF-файлов, изображений (фотографий визиток), почтового клиента, в деловых документах и т.п. Как собрать нужную информацию в одном месте и заодно преобразовать в более удобный (читаемый) формат?
Поможет программа-парсер (скрейпер). Она умеет открывать файлы разных типов, находить в них нужную информацию и сохранять данные в другом формате (обычно в виде таблиц или списков, но могут быть и другие форматы, например, разметка XLM и т.п.).
Процесс поиска информации и преобразования её в новый вид/формат называют парсингом или скрейпингом.
Ранее мы рассказывали о том, что такое парсинг.
От англ. scraping — «соскоб» или «выскабливание». В итоге получаем следующее определение.
Скрапинг – это процесс поиска и преобразования данных в более удобный формат, пригодный для анализа, хранения, индексирования и т.п.
Что такое Web Scraping (веб-скрейпинг)?
Веб-скрапинг, как можно понять из приставки «веб» – это поиск и преобразование в удобный формат web-данных. То есть информации, размещённой на страницах сайтов и сервисов в сети Интернет.
Тут важно заметить, что современные информационные системы могут работать с разными форматами информации. Но информация хранится не только в Глобальной сети. Поэтому существуют и оффлайн-парсеры (программы-скрейперы), предназначенные для работы с локальными файлами пользователей.
Наибольшее распространение получили именно веб-скрейперы. Почему?
- С их помощью можно быстро и массово проверять свои сайты на ошибки и на качество наполнения, на соблюдение структуры, на наличие обязательных тегов, меток и т.п.
- Веб-парсеры могут эмулировать поведение пользователей, поэтому с помощью программных средств можно проверить качество работы сайта/веб-сервиса, степень его безопасности, нагрузку и другие характеристики.
- Скрейперы позволяют быстро находить нужную информацию по заданной теме в сети или на конкретных сайтах.
- С их помощью можно структурировать и накапливать различные данные о сайтах конкурентов. Например, следить за динамикой цен, широтой ассортимента, анонсами новых акций и т.п. Это мощный инструмент маркетинга и исследований.
- Скрейперы умеют обнаруживать новый контент и оповещать о других видах событий (негативные отзывы, новые комментарии, спецпредложения, упоминания и т.п.).
- При наличии специальных программных модулей скрейперы умеют преобразовывать один формат данных в другой. Например, могут сканировать изображения в поисках текстовой информации (функция распознавания) и т.п.
Веб-скрейперы могут работать как самостоятельное ПО на оборудовании пользователя (на его ПК или на виртуальном/выделенном сервере), либо развёртываться в облаке (предоставляться как услуга, формат SaaS или PaaS). В отдельных случаях скраперы могут входить в состав более сложных программных комплексов как один из элементов системы.
Задачи и цели web-скрейперов могут быть любыми, от положительных, нацеленных на созидание и улучшение, до отрицательных, нацеленных на промышленный шпионаж, на обнаружение дыр в безопасности и т.п.
Наиболее востребованные задачи – для бизнеса:
- Анализ конкурентов (маркетинговые исследования).
- Мониторинг цен и ассортимента.
- Поиск новостей и тематического контента.
- Нахождение и извлечение контактной информации.
- SEO-задачи (продвижение в поиске).
- SERM-задачи (управление репутацией в сети).
Если с плюсами парсеров/скраперов всё более-менее понятно (это помощь в решении прикладных задач), то о минусах мало кто говорит. Исправим эту несправедливость.
Минусы использования веб-скрейперов
- Парсеры всегда создают паразитную нагрузку на исследуемый сайт. Именно поэтому крупные порталы часто используют свои системы защиты: показ капчи, занесение IP-адресов в чёрные списки, скоринг клиентов и прочее.
- Программы-скрейперы должны работать с постоянным сетевым подключением (с широким интернет-каналом). Для быстрого сбора большого объёма информации нужно распараллеливать потоки, а без ротируемых прокси реализовать такой подход будет крайне сложно (иначе IP устройства быстро попадёт в чёрный список и будет блокироваться).
- Саму программу нужно купить (существуют бесплатные версии, но они часто имеют ряд технических ограничений, поэтому подходят либо для тестирования, либо для малых объёмов сбора).
- Если арендовать готовый облачный сервис, то нужно оплачивать его подписку.
- Данные нужно где-то хранить. Одно дело, когда вы собираете небольшой объём информации о конкурентах, а другое – миллионы страниц и изображений. Это уже не мегабайты, а гигабайты или терабайты данных на диске.
- Часто конкретный парсер бывает заточен под определённую задачу, например, как сникер-бот (что такое сникер-бот). Это значит, что адаптировать его под свои нужды будет сложно.
- Если скрейпер универсальный, то его будет сложно настроить без опыта и специальных знаний. Потребуется тонко задать шаги и теги, чтобы натравить парсер только на нужные вам данные.
- В процессе парсинга можно нарушить отдельные требования законов. В разных странах к сбору данных относятся по-разному. Например, в России можно нарушить авторские права, коммерческую тайну и требования закона о хранении персональных данных (если собирать контактную информацию).
На всякий случай расскажем и о плюсах.
Преимущества использования веб-скрейперов
- Решение многих прикладных задач, связанных с преобразованием одних данных в другие.
- Ускоренный поиск и структурирование нужной информации. Получение данных для проведения анализа и мониторинга.
- Автоматизация многих маркетинговых задач.
- Повышение точности и уменьшение времени распознавания, так как исключается человеческий фактор.
- Экономия бюджетов за счёт получения оперативных данных и автоматизации процессов.
- Если арендуется профильный сервис, то данные по рынку могут быть представлены уже в готовом виде. Плюс, может предоставляться большое облачное хранилище, чтобы вы не беспокоились о занимаемом месте на диске и о сохранности информации.
- Одновременная обработка большого количества потоков информации и работа с большими базами.
Что такое веб-сканирование (Web Crawling)?
Crawling – от англ. «ползание», в русском варианте применительно к сайтам используется термин «обход» или «сканирование».
Что интересно, существительное «краулер» (Crawler) переводится как «ползающее насекомое». Но в русскоязычной версии веб-краулер стали переводить как «паук», поисковый робот или просто бот. «Паук», видимо, лучше ассоциируется с интернет-паутиной, чем просто «насекомое».
Веб-краулер – это специальный скрипт, который обходит сайты в поисках нового контента и изменений. Веб-мастера называют этот процесс индексированием.
Но чисто технически процесс сканирования (индексирования) мало чем отличается от парсинга или от скрейпинга.
Механизм сканирования происходит примерно так:
- Специальная утилита (бот, паук) открывает содержимое страницы.
- Данные (вся HTML-структура и код) «утаскиваются» на сервер поисковой машины, где они анализируются и сравниваются с предыдущей актуальной версией.
- Параллельно проверяется релевантность и полезность контента, оценивается удобство навигации, скорость открытия и другие параметры (а их очень много).
- При необходимости в граф знаний вносятся правки, новые страницы добавляются в поисковую выдачу, неактуальные удаляются.
При простом скрейпинге проводятся аналогичные операции, данные со страниц тоже собирает специальный скрипт, но отдаются и хранятся они не в поисковой системе, а на серверах или на рабочих компьютерах пользователей.
Итак, на всякий случай расставим точки.
Веб-сканирование (webcrawling) – это процесс анализа содержимого всех страниц отдельно взятого сайта с целью их ранжирования при релевантном поиске. Задача поискового бота – «понять» и «увидеть» содержимое страницы, как это сделали бы обычные пользователи.
В отличие от потенциально паразитного трафика, который приносит с собой процедура скрапинга (парсинга), сканирование – это крайне желанный процесс для сайта. Ведь по результатам краулинга сайт может добавиться в поисковую выдачу или повыситься в позициях, если он там уже был.
Для поисковых краулеров даже создаются специальные файлы настроек и карты, где вебмастер (владелец сайта) может подсказать, что нужно сканировать, а что нет, какие материалы появились, а какие исчезли и т.д. Это делается с помощью специальных директив в файлах robots.txt, с помощью XML-карт, а также с помощью специальных HTML-тегов внутри страниц.
Разница между скрапингом (парсингом) и сканированием
Как можно было понять из описания, скрейпинг проводится пользователями или владельцами бизнеса в своих собственных целях: для поиска или анализа контента, для его извлечения или для преобразования в удобный формат.
Цели парсинга (скрейпинга) сугубо коммерческие. Для проведения процедуры используется специальный софт и ряд решений для обхода блокировок и для распараллеливания процессов, например, ротируемые прокси.
Цель web-сканирования – добавление в поиск и индексирование. Это нужно владельцам сайтов, поэтому пауков поисковых систем (поисковых ботов) никто не блокирует. Наоборот, их ждут и заранее готовят информацию о том, что и где нужно сканировать.
При скрейпинге данные собираются и перерабатываются в соответствии с критериями поиска, например, выделяются только контактные данные или тело комментариев, находятся упоминания компаний, брендов и пр. Информация может быть выгружена и сохранена в любое место, удобное клиенту – для последующей обработки и анализа. Обычно поддерживаются все табличные форматы экспорта.
При сканировании информацию обрабатывают только поисковые машины, она никуда не экспортируется. Сторонние люди доступа к таким данным не имеют.
Если говорить о технических нюансах, то фактически различия неочевидны. Любой парсер может представиться поисковым ботом или веб-браузером и действовать от его лица. Данные со страниц собираются в одном и том же формате – в виде HTML-кода.
Различия только в целях обработки таких данных и в технических возможностях для клиентов.
Поисковым ботам не нужны прокси или другие механизмы защиты от блокировки. Если сайт не хочет, чтобы его индексировали – это его проблемы. Краулер просто перейдёт к другому веб-ресурсу в очереди на сканирование.
Парсерам (скраперам) же наоборот, нужно собрать информацию с сайта несмотря ни на что. Именно поэтому в составе программ могут использоваться специальные модули обхода защиты, подключения списков прокси, распознавания капчи, эмулирования поведения реальных пользователей и т.п.
Выводы и заключение
Термин «веб-сканирования» (краулинг) связан с индексированием контента страниц и нужен самим сайтам (владельцам ресурсов), чтобы данные о них попали в органический поиск.
Слово «скрейпинг» в русском языке не прижилось, вместо него чаще используется слово «парсинг». Процедура парсинга связана исключительно с коммерческими целями и задачами: мониторинг, аналитика, поиск, извлечение и т.п.
Но при этом технические процедуры сканирования и парсинга во многом похожи. И там, и там собирается и анализируется HTML-код страниц.
Если вас интересует именно парсинг (скрейпинг) данных, то без дополнительных вложений никак не обойтись. Даже если вы используете профильный софт, к нему придётся подключать список прокси, чтобы исследуемые сайты не заблокировали IP-адрес устройства, отправляющего запросы.
Читайте также: Как генерировать случайный IP-адрес для каждой из ваших сессий
Лучшим решением для обхода блокировок станут резидентные или мобильные прокси.
Купить пакеты мобильных и резидентных прокси можно у нас. Froxy – это более 8 млн ротируемых IP, удобная панель управления и до 1000 параллельных портов. Точность выбора адреса – вплоть до нужного города и оператора связи. Оплачивается только трафик.