редакции
Как выбрать решение для парсинга сайтов: классификация и большой обзор программ, сервисов и фреймворков
И часто контент требуется собирать в больших объемах, массово, а если еще данные нужны с определенной периодичностью, то решить такую задачу руками не представляется возможным. Вот тут на помощь приходят специальные алгоритмы, которые по определенным условиям собирают информацию, структурируют и выдают в нужном виде.
Кому и зачем нужно парсить сайты?
В основном парсинг используют профессионалы для решения рабочих задач, поскольку автоматизация позволяет получить сразу большой массив данных, но также он пригодится и для решения частных задач.
- Маркетологи собирают информацию об объемах продаж, выявляют долю полки, узнают категорийный спрос и другие показатели позволяющие прогнозировать продажи;
- Продукт-менеджеры собирают информацию об изменении метрик продукта, проводят A/B тесты, меряют статистическую значимость;
- Аналитики мониторят изменение цен конкурентов;
- Разработчики наполняют интернет-магазины контентом оптовика и автоматически обновляют цены;
- SEO-специалисты узнают заполнены ли все метаданные, H1, Title, Description, анализируют наличие несуществующих страниц показывающих 404 ошибку, выявляют ключевые слова;
- Управленцы производственных компаний следят за тем, чтобы партнеры не демпинговали и получают бизнес показатели;
- Для частных целей можно собрать коллекцию рецептов, уроков или любой другой информации, которую нужно сохранить для личных целей.
Кто бы и какую информацию не собирал важно помнить о соблюдении рамок законодательства, подробно об этом мы рассказали в статье парсинг сайтов, это законно?
С целями применения понятно, давайте теперь разберемся какие парсеры бывают и подберем инструмент для решения ваших задач, для этого разделим парсеры на несколько групп и посмотрим какие решения есть на рынке.
Классификация программ и инструментов для парсинга
По использованию ресурсов
Это важный момент, если парсер будет использоваться для бизнес задач и регулярно, вам нужно решить на чьей стороне будет работать алгоритм, на стороне исполнителя или вашей. С одной стороны, для развертывания облачного решения у себя, потребуется специалист для установки и поддержки софта, выделенное место на сервере, и работа программы будет отъедать серверные мощности. И это дорого. С другой, если вы можете себе это позволить, возможно такое решение обойдется дешевле (если масштабы сбора данных действительно промышленные), нужно изучать тарифные сетки.
Есть еще момент с приватностью, политики некоторых компаний не позволяют хранить данные на чужих серверах и тут нужно смотреть на конкретный сервис, во-первых, собранные парсером данные могут передаваться сразу по API, во-вторых, этот момент решается дополнительным пунктом в соглашении.
По способу доступа
Удаленные решения
Сюда отнесем облачные программы (SaaS-решения), главное преимущество таких решений в том, что они установлены на удаленном сервере и не используют ресурсы вашего компьютера. Вы подключаетесь к серверу через браузер (в этом случае возможна работа с любой ОС) или приложение и берете нужные вам данные.
Облачные сервисы, как и все готовые решения в этой статье, не гарантируют, что вы сможете парсить любой сайт. Вы можете столкнуться со сложной структурой, технологией сайта, которую «не понимает» сервис, защитой, которая окажется «не по зубам» или невозможностью интерпретировать данные (например, вывод текстовых данных не текстом, а картинками).
Плюсы:
- Не требуют установки на компьютер;
- Данные хранятся удаленно и не расходуют место, вы скачиваете только нужные результаты;
- Могут работать с большими объемами данных;
- Возможность работы по API и последующей автоматизации визуализации данных;
Минусы:
- Как правило, дороже десктоп решений;
- Требуют настройки и обслуживания;
- Невозможность парсить сайты со сложной защитой и/или интерпретировать данные.
Рассмотрим популярные сервисы и условия работы.
Octoparse — один из популярных облачных сервисов. Особенности сервиса: Стоимость, в месяц: Scraper API — сервис, работающий через API, с подробной документацией. Особенности сервиса: Пример GET запроса: Стоимость, в месяц: ScrapingHub
— функциональный облачный инструмент, включающий инструмент для ротации
прокси серверов, headless браузер для парсинга (требующий написания кода) и инструмент для хранения данных. Особенности сервиса: Стоимость прокси, в месяц: Стоимость облачного хранилища для данных, в месяц: Браузер для парсинга, в месяц: Стоимость настраиваемого сервиса под индивидуальные запросы рассчитывается индивидуально. Mozenda
— популярный сервис позволяющий работать в облаке и на локальной машине, имеет интерфейс для визуального захвата данных без знания программирования. Особенности сервиса: Стоимость, в месяц: ScrapingBee — сервис предоставляет возможность парсить данные через безголовый браузер, требует знания программирования. Особенности сервиса: Стоимость, в месяц: Такие
программы устанавливаются на компьютер. Применяются для нерегулярных и нересурсоемких задач. Многие позволяют настраивать параметры сбора данных визуально. Плюсы: Минусы: ParseHub — программа, позволяющая в визуальном виде, без знания программирования собирать данные с сайтов. Интерфейс программы: Особенности: Стоимость, в месяц: Easy Web Extract — простой инструмент для парсинга сайтов, не требующий знания программирования. Интерфейс программы: Особенности: Стоимость: FMiner
— визуальный инструмент для парсинга сайтов в интернете с интуитивно понятным интерфейсом. Работает с сайтами, требующими ввода форм и прокси
серверами. Интерфейс программы: Особенности: Стоимость: Helium Scraper — программа для многопоточного парсинга с возможностью собирать базы данных до 140 Tb. Интерфейс программы: Особенности: Стоимость: WebHarvy Web Scraper
— программа для парсинга сайтов с возможностью обнаружения паттернов в шаблонах веб-сайтов и последующей автоматической обработкой таких данных. Такая особенность существенно упрощает программирование парсера. Интерфейс программы: Особенности: Стоимость: Если
задачи, стоящие при сборе данных нестандартные, нужно выстроить подходящую архитектуру, работать с множеством потоков, и существующие решения вас не устраивают, нужно писать свой собственный парсер. Для этого нужны ресурсы, программисты, сервера и специальный инструментарий,
облегчающий написание и интеграцию парсинг программы, ну и конечно поддержка (потребуется регулярная поддержка, если изменится источник данных, нужно будет поменять код). Рассмотрим какие библиотеки существуют в настоящее время. В этом разделе не будем оценивать достоинства и недостатки решений, т.к. выбор может быть обусловлен характеристиками текущего программного обеспечения и другими особенностями окружения, что для одних будет достоинством для других — недостатком. Библиотеки
на Python предоставляют возможность создания быстрых и эффективных программ для парсинга, с последующей интеграцией по API. Важной особенностью является, что представленные ниже фреймворки имеют открытый
исходный код. Scrapy — наиболее распространенный фреймворк, имеет большое сообщество и подробную документацию, хорошо структурирован. Лицензия: BSD BeautifulSoup
— предназначен для анализа HTML и XML документов, имеет документацию на
русском, особенности — быстрый, автоматически распознает кодировки. Лицензия: Creative Commons, Attribution-ShareAlike 2.0 Generic (CC BY-SA 2.0) PySpider — мощный и быстрый, поддерживает Javascript, нет встроенной поддержки прокси. Лицензия: Apache License, Version 2.0 Grab
— особенность — асинхронный, позволяет писать парсеры с большим количеством сетевых потоков, есть документация на русском, работает по API. Лицензия: MIT License Lxml
— простая и быстрая при анализе больших документов библиотека, позволяет работать с XML и HTML документами, преобразовывает исходную информацию в типы данных Python, хорошо документирована. Совместима с BeautifulSoup, в этом случае последняя использует Lxml как парсер. Лицензия: BSD Selenium
— инструментарий для автоматизации браузеров, включает ряд библиотек для развертывания, управления браузерами, возможность записывать и воспроизводить действия пользователя. Предоставляет возможность писать сценарии на различных языках, Java, C#, JavaScript, Ruby. Лицензия: Apache License, Version 2.0 JavaScript также предлагает готовые фреймворки для создания парсеров с удобными API. Cheerio
— быстрый, анализирует разметку страницы и предлагает функции для обработки полученных данных. Работает с HTML, имеет API устроенное так же, как API jQuery. Лицензия: MIT License Apify SDK — является библиотекой Node.js, позволяет работать с JSON, JSONL, CSV, XML,XLSX или HTML, CSS. Работает с прокси. Лицензия: Apache License, Version 2.0 Osmosis — написан на Node.js, ищет и загружает AJAX, поддерживает селекторы CSS 3.0 и XPath 1.0, логирует URL, заполняет формы. Лицензия: MIT License Java также предлагает различные библиотеки, которые можно применять для парсинга сайтов. Jaunt
— библиотека предлагает легкий headless браузер (без графического интерфейса) для парсинга и автоматизации. Позволяет взаимодействовать с REST API или веб приложениями (JSON, HTML, XHTML, XML). Заполняет формы,
скачивает файлы, работает с табличными данными, поддерживает Regex. Лицензия:
Apache License (Срок действия программного обеспечения истекает ежемесячно, после чего должна быть загружена самая последняя версия) Jsoup
— библиотека для работы с HTML, предоставляет удобный API для получения
URL-адресов, извлечения и обработки данных с использованием методов HTML5 DOM и селекторов CSS. Поддерживает прокси. Не поддерживает XPath. Лицензия: MIT License HtmlUnit
— не является универсальной средой для модульного тестирования, это браузер без графического интерфейса. Моделирует HTML страницы и предоставляет API, который позволяет вызывать страницы, заполнять формы,
кликать ссылки. Поддерживает JavaScript и парсинг на основе XPath. Лицензия: Apache License, Version 2.0 CyberNeko HTML Parser — простой парсер, позволяет анализировать HTML документы и обрабатывать с помощью XPath. Лицензия: Apache License, Version 2.0 Парсеры
сайтов выполненные в виде расширений для браузера удобны с точки зрения
использования, установка минимальная — нужен всего лишь браузер, захват
данных визуальный — не требует программирования. Scrape.it — расширение для браузера Chrome для сбора данных с сайтов с визуальным Point-Click интерфейсом. Особенности: Стоимость, в месяц: Web Scraper.io
— инструмент для парсинга сайтов выполненный в виде расширения для Chrome, сервис с большим набором опций и возможностью визуального программирования парсинга. Особенности: Стоимость, в месяц: Data miner — расширение для Google Chrome и Microsoft Edge, помогает собирать данные с сайтов с помощью простого визуального интерфейса. Особенности: Стоимость, в месяц: Scraper.Ai — расширение с широким набором функциональности и демократичными ценами, работает с Chrome, Firefox и Edge. Особенности: Стоимость, в месяц: Сервисы
для мониторинга цен позволяют отслеживать динамику цен конкурентов на те же товарные позиции, которые продаете и вы. Далее цены сравниваются и
вы можете повышать или понижать стоимость в зависимости от ситуации на рынке. Это позволяет в каждый момент времени предлагать самую выгодную цену на рынке, делая покупку в вашем магазине привлекательнее чем у конкурента, и не упустить прибыль, если конкуренты по какой-то причине подняли цены. Подобные сервисы часто адаптированы к какому-либо маркетплейсу, для того чтобы получить цены интернет-магазинов, торгующих
со своего сайта, нужно настраивать сбор данных самостоятельно или заказывать настройку парсинга индивидуально. Монетизация подобных сервисов — подписочная модель с тарифной сеткой, ранжирующей количество собираемых цен/конкурентов. Подобные
сервисы предназначены для организации совестных закупок в социальных сетях. Такие парсеры собирают данные о товарах выгружают их в группы ВКонтакте и Одноклассники, что позволяет автоматизировать процесс наполнения витрины и мониторить ассортимент, остатки и цены на сайтах поставщиков. Как правило, эти парсеры имеют личный кабинет с возможностью управления, настроенные интеграции для сбора данных, систему уведомлений, возможность экспортировать данные и не требуют доработки. Монетизация — подписка с тарификацией, зависящей от количества сайтов. Такие
сервисы позволяют автоматизировать загрузку товаров (картинки, описания, характеристики) от оптовика, синхронизируют цены и остатки. Это позволяет вести работу по добавлению товара и управлению ценами в полностью автоматизированном режиме и экономить на персонале. В качестве
источника может выступать как xml или csv файл, так и сайт, с которого робот забирает информацию. Парсеры
применяемые для целей поисковой оптимизации помогают собирать мета данные (H1, Title, Description), ключевые слова, составлять семантическое ядро, собирать поведенческие и количественные аналитические данные о конкурентах. Спектр инструментов очень широк по функциональности, рассмотрим популярные сервисы, чтобы вы могли подобрать подходящий. SiteAnalyzer
— парсинг-программа для проверки основных технических и SEO данных сайтов. Главная особенность — программа полностью бесплатна. Работает на
локальном компьютере, доступна только для ОС Windows. Особенности: Стоимость: Screaming Frog SEO Spider
— мощная и популярная программа для СЕО аудита сайта. Парсер зарекомендовал себя как один из лучших в своем классе и предоставляет широкий функционал для проведения SEO анализа. Особенности: Стоимость: ComparseR
— специализация программы аналитика индексации сайта в поисковых системах Яндекс и Google. Вы сможете выяснить какие страницы находятся в
поиске, а какие нет и проанализировать их. Особенности: Стоимость: Такие
парсеры собирают данные прямо в таблицы excel и google sheets. В основе
действия таких парсеров лежат макросы автоматизирующие действия или специальные формулы извлекающие данные с сайтов. Подобные парсеры подходят для несложных задач, когда собираемые данные не защищены и находятся на простых, не динамичных сайтах. ParserOk
— парсинг сайтов на основе vba(макросов) в таблицы Microsoft Excel. Надстройка позволяет импортировать данные с сайтов по заранее созданным шаблонам и относительно проста в настройке. Недостатком является то, что
если шаблон не соответствует вашему запросу, то потребуется доработка. Стоимость лицензии составляет 2700 р., демо версия рассчитана на 10 дней. Функции google sheets — importhtml и importxml
— функции позволяющие импортировать данные прямо в таблицы. При помощи этих функций можно организовать несложный сбор данных по заранее запрограммированным вводным. Знание языка запросов «Xpath» существенно расширит область применения формул. Подобные
сервисы работают «под ключ», подходят к задаче индивидуально, парсинг пишется под конкретный запрос. Такие решения лучше всего подходят для частных задач бизнеса, например, когда нужно анализировать конкурентов, собирать определенные типы данных и делать это регулярно. Плюсы таких решений в том, что специально разработанное под задачу решение соберет данные даже с хорошо защищенных сайтов или данные, которые требуют интерпретации, например когда цена выводится не текстом, а в виде картинки. Программы и сервисы с самостоятельной настройкой в этих ситуациях не справятся с подобной задачей. Плюс, подобные сервисы не требуют выделять время отдельного сотрудника на сбор данных или переделку парсинга в случае изменения на сайте источнике. Стоимость
работы с индивидуально настроенным парсингом, если у вас несколько разных сайтов и необходимость регулярно получать данные будет выгодней, это не сложно проверить если посчитать стоимость готового решения + стоимость программиста для написания парсинга и его поддержки + стоимость содержания серверов. Примеры подобных сервисов есть в начале статьи в разделе облачных парсеров, многие из них предлагают настраиваемые решения. Добавим русскоязычный сервис. iDatica
— сервис специализируется на организации парсинга, очистки данных, матчинга и визуализации данных под запрос. iDatica имеет русскоязычную поддержку, опытных специалистов и зарекомендовала себя как надежный партнер для разработки решений сбора и визуализации данных. По запросу команда выделяет аналитика для работы с вашими проектами. Особенности сервиса: Стоимость, в месяц: Если
у вас стандартная задача с небольшим объемом данных и есть отдельный человек для выполнения задачи, то вам подойдет готовое решение в виде программы или расширения для браузера. Для парсинга сложных сайтов
с определенной регулярностью обратите внимание на облачные решения. Вам
потребуется отдельный сотрудник для ведения этого проекта. Если задача завязана на увеличение прибыли или даже жизнеспособность проекта стоит обратить внимание на облачный сервис с возможностью программировать или библиотеки для парсинга, выделить отдельного программиста для этой задачи и серверные мощности. Если нужно получить решение быстро и нужно быть уверенным в качестве результата, стоить выбрать компанию реализующую проект под ключ.






Десктоп решения (программы для парсинга)





По используемому фреймворку
Python






JavaScript



Java




Расширения для браузеров




В зависимости от решаемых задач
Мониторинг конкурентов
Организация совместных закупок
Автоматизация интернет-магазинов
Парсинг SEO данных и аналитика



Парсеры на основе таблиц
Настраиваемые решения для парсинга

Как правильно выбрать парсер