Парсинг или как его еще иногда называют web scraping – процесс автоматического сбора информации с различных сайтов. Форумы, новостные сайты, социальные сети, маркейтплейсы, интернет-магазины и даже поисковая выдача, вот далеко не полный список ресурсов с которых собирают контент.
И часто контент требуется собирать в больших объемах, массово, а если еще данные нужны с определенной периодичностью, то решить такую задачу руками не представляется возможным. Вот тут на помощь приходят специальные алгоритмы, которые по определенным условиям собирают информацию, структурируют и выдают в нужном виде.
В основном парсинг используют профессионалы для решения рабочих задач, поскольку автоматизация позволяет получить сразу большой массив данных, но также он пригодится и для решения частных задач.
С целями применения понятно, давайте теперь разберемся какие парсеры бывают и подберем инструмент для решения ваших задач, для этого разделим парсеры на несколько групп и посмотрим какие решения есть на рынке.
Это важный момент, если парсер будет использоваться для бизнес задач и регулярно, вам нужно решить на чьей стороне будет работать алгоритм, на стороне исполнителя или вашей. С одной стороны, для развертывания облачного решения у себя, потребуется специалист для установки и поддержки софта, выделенное место на сервере, и работа программы будет отъедать серверные мощности. И это дорого. С другой, если вы можете себе это позволить, возможно такое решение обойдется дешевле (если масштабы сбора данных действительно промышленные), нужно изучать тарифные сетки.
Есть еще момент с приватностью, политики некоторых компаний не позволяют хранить данные на чужих серверах и тут нужно смотреть на конкретный сервис, во-первых, собранные парсером данные могут передаваться сразу по API, во-вторых, этот момент решается дополнительным пунктом в соглашении.
Сюда отнесем облачные программы (SaaS-решения), главное преимущество таких решений в том, что они установлены на удаленном сервере и не используют ресурсы вашего компьютера. Вы подключаетесь к серверу через браузер (в этом случае возможна работа с любой ОС) или приложение и берете нужные вам данные.
Облачные сервисы, как и все готовые решения в этой статье, не гарантируют, что вы сможете парсить любой сайт. Вы можете столкнуться со сложной структурой, технологией сайта, которую “не понимает” сервис, защитой, которая окажется “не по зубам” или невозможностью интерпретировать данные (например, вывод текстовых данных не текстом, а картинками).
Плюсы:
Минусы:
Рассмотрим популярные сервисы и условия работы.
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.
Puppeteer — это headless Chrome API для NodeJS программистов, которые хотят детально контролировать свою работу, когда работают над парсингом. Как инструмент с открытым исходным кодом, Puppeteer можно использовать бесплатно. Он активно разрабатывается и поддерживается самой командой Google Chrome. Он имеет хорошо продуманный API и автоматически устанавливает совместимый двоичный файл Chromium в процессе установки, а это означает, что вам не нужно самостоятельно отслеживать версии браузера. Хотя это гораздо больше, чем просто библиотека для парсинга сайтов, она очень часто используется для парсинга данных, для отображения которых требуется JavaScript, она обрабатывает скрипты, таблицы стилей и шрифты, как настоящий браузер. Обратите внимание, что хотя это отличное решение для сайтов, которым для отображения данных требуется javascript, этот инструмент требует значительных ресурсов процессора и памяти.
Лицензия: Apache License, Version 2.0
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
Парсеры сайтов выполненные в виде расширений для браузера удобны с точки зрения использования, установка минимальная – нужен всего лишь браузер, захват данных визуальный – не требует программирования.
iDatica раширение для парсинга – расширение для браузеров Chrome и Edge для сбора данных с сайтов с визуальным Point-Click интерфейсом и возможностью ручных настроек.
Особенности:
Стоимость, в месяц: Бесплатно
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 имеет русскоязычную поддержку, опытных специалистов и зарекомендовала себя как надежный партнер для разработки решений сбора и визуализации данных. По запросу команда выделяет аналитика для работы с вашими проектами.
iDatica – сервис специализируется на организации парсинга, очистки данных, матчинга и визуализации данных под запрос
Особенности сервиса:
Стоимость, в месяц:
Если у вас стандартная задача с небольшим объемом данных и есть отдельный человек для выполнения задачи, то вам подойдет готовое решение в виде программы или расширения для браузера.
Для парсинга сложных сайтов с определенной регулярностью обратите внимание на облачные решения. Вам потребуется отдельный сотрудник для ведения этого проекта.
Если задача завязана на увеличение прибыли или даже жизнеспособность проекта стоит обратить внимание на облачный сервис с возможностью программировать или библиотеки для парсинга, выделить отдельного программиста для этой задачи и серверные мощности.
Если нужно получить решение быстро и нужно быть уверенным в качестве результата, стоить выбрать компанию реализующую проект под ключ.
И часто контент требуется собирать в больших объемах, массово, а если еще данные нужны с определенной периодичностью, то решить такую задачу руками не представляется возможным. Вот тут на помощь приходят специальные алгоритмы, которые по определенным условиям собирают информацию, структурируют и выдают в нужном виде.
Кому и зачем нужно парсить сайты?
В основном парсинг используют профессионалы для решения рабочих задач, поскольку автоматизация позволяет получить сразу большой массив данных, но также он пригодится и для решения частных задач.
- Маркетологи собирают информацию об объемах продаж, выявляют долю полки, узнают категорийный спрос и другие показатели позволяющие прогнозировать продажи;
- Продукт-менеджеры собирают информацию об изменении метрик продукта, проводят A/B тесты, меряют статистическую значимость;
- Аналитики мониторят изменение цен конкурентов;
- Разработчики наполняют интернет-магазины контентом оптовика и автоматически обновляют цены;
- SEO-специалисты узнают заполнены ли все метаданные, H1, Title, Description, анализируют наличие несуществующих страниц показывающих 404 ошибку, выявляют ключевые слова;
- Управленцы производственных компаний следят за тем, чтобы партнеры не демпинговали и получают бизнес показатели;
- Для частных целей можно собрать коллекцию рецептов, уроков или любой другой информации, которую нужно сохранить для личных целей.
С целями применения понятно, давайте теперь разберемся какие парсеры бывают и подберем инструмент для решения ваших задач, для этого разделим парсеры на несколько групп и посмотрим какие решения есть на рынке.
Классификация программ и инструментов для парсинга
По использованию ресурсов
Это важный момент, если парсер будет использоваться для бизнес задач и регулярно, вам нужно решить на чьей стороне будет работать алгоритм, на стороне исполнителя или вашей. С одной стороны, для развертывания облачного решения у себя, потребуется специалист для установки и поддержки софта, выделенное место на сервере, и работа программы будет отъедать серверные мощности. И это дорого. С другой, если вы можете себе это позволить, возможно такое решение обойдется дешевле (если масштабы сбора данных действительно промышленные), нужно изучать тарифные сетки.
Есть еще момент с приватностью, политики некоторых компаний не позволяют хранить данные на чужих серверах и тут нужно смотреть на конкретный сервис, во-первых, собранные парсером данные могут передаваться сразу по API, во-вторых, этот момент решается дополнительным пунктом в соглашении.
По способу доступа
Удаленные решения
Сюда отнесем облачные программы (SaaS-решения), главное преимущество таких решений в том, что они установлены на удаленном сервере и не используют ресурсы вашего компьютера. Вы подключаетесь к серверу через браузер (в этом случае возможна работа с любой ОС) или приложение и берете нужные вам данные.
Облачные сервисы, как и все готовые решения в этой статье, не гарантируют, что вы сможете парсить любой сайт. Вы можете столкнуться со сложной структурой, технологией сайта, которую “не понимает” сервис, защитой, которая окажется “не по зубам” или невозможностью интерпретировать данные (например, вывод текстовых данных не текстом, а картинками).
Плюсы:
- Не требуют установки на компьютер;
- Данные хранятся удаленно и не расходуют место, вы скачиваете только нужные результаты;
- Могут работать с большими объемами данных;
- Возможность работы по API и последующей автоматизации визуализации данных;
Минусы:
- Как правило, дороже десктоп решений;
- Требуют настройки и обслуживания;
- Невозможность парсить сайты со сложной защитой и/или интерпретировать данные.
Рассмотрим популярные сервисы и условия работы.
Octoparse – один из популярных облачных сервисов.
Особенности сервиса:
- Визуальный интерфейс для захвата данных;
- Не требующий знания программирования;
- Работает с динамическими элементами сайтов, такими как бесконечная прокрутка, окна авторизации, раскрывающиеся списки;
- Язык сервиса – английский;
Стоимость, в месяц:
- Бесплатный план позволяет собрать до 10 000 значений и запустить параллельно 2 потока;
- Платные тарифы $89 и $249 с разным лимитом на парсинг данных;
- Настраиваемый план для компаний с индивидуальными требованиями.
Scraper API – сервис, работающий через API, с подробной документацией.
Особенности сервиса:
- Автоматическое подставление прокси адресов и повторение неудачных запросов;
- Ввод капчи;
- Работает через API и требует знания кода;
- Язык сервиса – английский;
Пример GET запроса:
Стоимость, в месяц:
- Бесплатно – 1000 вызовов API (до 5 одновременных запросов);
- Начальный и средний платный план 29$ и 99$ без геотаргетинга прокси и без поддержки JavaScript;
- Бизнес план с поддержкой JavaScript и расширенными лимитами сбора данных;
- Кастомный план для компаний с индивидуальными требованиями.
ScrapingHub – функциональный облачный инструмент, включающий инструмент для ротации прокси серверов, headless браузер для парсинга (требующий написания кода) и инструмент для хранения данных.
Особенности сервиса:
- Сервис представляет набор инструментов, можно выбрать необходимые, в противовес удобству каждый инструмент нужно оплатить отдельно;
- Наличие API;
- Наличие видео уроков для быстрого старта;
- Язык сервиса – английский.
Стоимость прокси, в месяц:
- Демо доступ с 10 000 запросами;
- $99 в месяц за 200 000 запросов и $349 за 2,5м запросов;
- Безлимитный сервис стартует от $999.
Стоимость облачного хранилища для данных, в месяц:
- Бесплатный тариф ограничивает хранение данных 7 днями и время сканированием 1 часом;
- Платный тариф $9.
Браузер для парсинга, в месяц:
- $25/$50/$100 за доступ к браузеру на серверах с различной мощность.
Стоимость настраиваемого сервиса под индивидуальные запросы рассчитывается индивидуально.
Mozenda – популярный сервис позволяющий работать в облаке и на локальной машине, имеет интерфейс для визуального захвата данных без знания программирования.
Особенности сервиса:
- Возможность вернуть деньги, если вы не сможете собрать нужные данные с помощью сервиса;
- Хорошая тех поддержка;
- Возможность парсить без знания программирования;
- Наличие API;
- Интеграция с различными сервисами, трекерами, Bl системами;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тариф на 30 дней;
- Платные тарифы от $250 до $450 с различным набором включенных сервисов;
- Настраиваемый план для компаний с индивидуальными требованиями.
ScrapingBee – сервис предоставляет возможность парсить данные через безголовый браузер, требует знания программирования.
Особенности сервиса:
- Автоматическая смена прокси в случае блокировки;
- Наличие API;
- Возможность работать с Javascript;
- Плата не взимается, если парсер не сможет получить данные;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тариф включает 1000 API обращений;
- $29, включает 250 000 запросов, прокси, отсутствие API;
- $99, включает 1 000 000 запросов, прокси и API;
- Настраиваемый план для компаний с индивидуальными требованиями.
Десктоп решения (программы для парсинга)
Такие программы устанавливаются на компьютер. Применяются для нерегулярных и нересурсоемких задач. Многие позволяют настраивать параметры сбора данных визуально.
Плюсы:
- Всегда под рукой, особенно, если установлены на ноутбуке;
- Часто имеют интерфейс визуального программирования.
Минусы:
- Тратят ресурсы компьютера (вычислительную мощность, место на диске);
- Работают только на ОС, под которую написаны;
- Нет гарантии, что программа сможет собрать нужные данные, переключить листинг;
- Часто нужно искать свои прокси адреса для обхода защиты сайтов.
ParseHub – программа, позволяющая в визуальном виде, без знания программирования собирать данные с сайтов.
Интерфейс программы:
Особенности:
- Планировщик запуска парсинга;
- Поддержка прокси (нужно использовать свои);
- Поддержка регулярных выражений;
- Наличие API;
- Работа с JavaScript и AJAX;
- Хранение данных на серверах и выгрузка результатов в Google таблицы;
- Работает на Windows, Mac, Linux;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тариф позволяет собрать данные с 200 страниц за запуск, с ограничением 40 минут, только текстовые данные, без ротации прокси;
- $149, 10000 страниц за запуск с ограничением 200 страниц в 10 минут, закачка файлов, прокси, планировщик;
- $499, неограниченное количество страниц за запуск с ограничением 200 страниц в 2 минуты, закачка файлов, прокси, планировщик;
- Индивидуальный тариф.
Easy Web Extract – простой инструмент для парсинга сайтов, не требующий знания программирования.
Интерфейс программы:
Особенности:
- Визуальное программирование;
- До 24 параллельных потоков;
- Парсинг сайтов с динамичным содержанием;
- Имитирует поведение человека;
- Планировщик;
- Сохранение файлов;
- Работает на Windows;
- Язык сервиса – английский.
Стоимость:
- Бесплатная версия на 14 дней, можно собрать до 200 первых результатов, экспортировать до 50 результатов;
- Разблокированная от ограничений версия стоит $39, дополнительная лицензия $29.
FMiner – визуальный инструмент для парсинга сайтов в интернете с интуитивно понятным интерфейсом. Работает с сайтами, требующими ввода форм и прокси серверами.
Интерфейс программы:
Особенности:
- Редактор для визуального программирования парсера;
- Парсинг динамических сайтов, использующих Ajax и Javascript;
- Многопоточное сканирование;
- Обход капчи;
- Работает на Windows, Mac;
- Язык сервиса – английский.
Стоимость:
- Бесплатная версия ограничена 15 днями;
- Basic версия стоит $168 и не имеет расширенных функций Pro версии;
- Pro версия включает отчеты, планировщик, настройка с javascript.
Helium Scraper – программа для многопоточного парсинга с возможностью собирать базы данных до 140 Tb.
Интерфейс программы:
Особенности:
- Визуальное программирование парсера;
- Парсинг динамических сайтов, использующих Ajax и Javascript;
- Многопоточное сканирование;
- Автоматическая ротация прокси серверов;
- Работает на Windows;
- Язык сервиса – английский.
Стоимость:
- Бесплатная полнофункциональная версия ограничена 10 днями;
- 4 тарифных плана от $99 до $699, они отличаются количеством лицензий и периодом основных обновлений.
WebHarvy Web Scraper – программа для парсинга сайтов с возможностью обнаружения паттернов в шаблонах веб-сайтов и последующей автоматической обработкой таких данных. Такая особенность существенно упрощает программирование парсера.
Интерфейс программы:
Особенности:
- Визуальное программирование парсинга;
- Парсинг динамически загружаемых сайтов, использующих Javascript и Ajax;
- Многопоточное сканирование;
- Поддержка прокси / VPN;
- Заполнение форм;
- Планировщик;
- Мультипоточность;
- Возможность собирать данные из списка ссылок;
- Работа с капчей;
- Работает на Windows;
- Язык сервиса – английский.
Стоимость:
- Бесплатная полнофункциональная версия ограничена 15 днями и возможностью захватить 2 страницы с сайта;
- 5 тарифных планов от $139 до $699 отличающиеся количеством лицензий.
По используемому фреймворку
Если задачи, стоящие при сборе данных нестандартные, нужно выстроить подходящую архитектуру, работать с множеством потоков, и существующие решения вас не устраивают, нужно писать свой собственный парсер. Для этого нужны ресурсы, программисты, сервера и специальный инструментарий, облегчающий написание и интеграцию парсинг программы, ну и конечно поддержка (потребуется регулярная поддержка, если изменится источник данных, нужно будет поменять код). Рассмотрим какие библиотеки существуют в настоящее время. В этом разделе не будем оценивать достоинства и недостатки решений, т.к. выбор может быть обусловлен характеристиками текущего программного обеспечения и другими особенностями окружения, что для одних будет достоинством для других – недостатком.
Парсинг сайтов Python
Библиотеки для парсинга сайтов на 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
JavaScript также предлагает готовые фреймворки для создания парсеров с удобными API.
Puppeteer — это headless Chrome API для NodeJS программистов, которые хотят детально контролировать свою работу, когда работают над парсингом. Как инструмент с открытым исходным кодом, Puppeteer можно использовать бесплатно. Он активно разрабатывается и поддерживается самой командой Google Chrome. Он имеет хорошо продуманный API и автоматически устанавливает совместимый двоичный файл Chromium в процессе установки, а это означает, что вам не нужно самостоятельно отслеживать версии браузера. Хотя это гораздо больше, чем просто библиотека для парсинга сайтов, она очень часто используется для парсинга данных, для отображения которых требуется JavaScript, она обрабатывает скрипты, таблицы стилей и шрифты, как настоящий браузер. Обратите внимание, что хотя это отличное решение для сайтов, которым для отображения данных требуется javascript, этот инструмент требует значительных ресурсов процессора и памяти.
Лицензия: Apache License, Version 2.0
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
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
Расширения для браузеров
Парсеры сайтов выполненные в виде расширений для браузера удобны с точки зрения использования, установка минимальная – нужен всего лишь браузер, захват данных визуальный – не требует программирования.
iDatica раширение для парсинга – расширение для браузеров Chrome и Edge для сбора данных с сайтов с визуальным Point-Click интерфейсом и возможностью ручных настроек.
Особенности:
- Парсинг каталогов с пагинацией (автоматизируется нажатие кнопки «далее»);
- Парсинг своего набора ссылок;
- Возможность ограничить сбор данных в нужной части страницы (этот же функционал задает повторяющиеся блоки карточек товара при парсинге интернет-магазинов);
- Возможность задать задержку между переходом на следующую страницу (избегаем блокировки, но увеличиваем время парсинга);
- Автоматический поиск xpath и css селектора до нужного элемента;
- Предпросмотр — визуально находит на странице элемент;
- Предпросмотр — какие данные на странице собирает написанный запрос и их общее количество;
- Загрузка и сохранение шаблонов (на нашем сайте нас можно скачать несколько готовых);
- Экспорт данных в csv и json;
- Лог
Стоимость, в месяц: Бесплатно
Scrape.it – расширение для браузера Chrome для сбора данных с сайтов с визуальным Point-Click интерфейсом.
Особенности:
- Визуальный Point-Click захват данных;
- Парсинг динамических сайтов, использующих Javascript;
- Многопоточное сканирование;
- Прокси сервера;
- Chrome браузер;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тестовый период на 30 дней;
- 3 тарифных плана $19.9, $49.9, $199.9 отличающиеся количеством параллельных запросов и скоростью сканирования страниц.
Web Scraper.io – инструмент для парсинга сайтов выполненный в виде расширения для Chrome, сервис с большим набором опций и возможностью визуального программирования парсинга.
Особенности:
- Визуальный захват данных с сайта;
- Парсинг динамических сайтов с Ajax и Javascript, с возможностью прокрутки;
- Многопоточное сканирование;
- Автоматическая ротация прокси серверов;
- Работает с браузерами Chrome, Firefox;
- API;
- Передача результатов через Dropbox;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тестовый период на 30 дней;
- 3 тарифных плана $19.9, $49.9, $199.9, отличаются количеством параллельных запросов и скоростью сканирования страниц.
Data miner – расширение для Google Chrome и Microsoft Edge, помогает собирать данные с сайтов с помощью простого визуального интерфейса.
Особенности:
- Сбор данных с сайта без программирования;
- Готовые шаблоны для 15 000+ популярных сайтов;
- Парсинг списка URL-адресов;
- Поддержка пагинации с дозагрузкой;
- Автоматическое заполнение форм;
- Работает с браузерами Chrome, Edge;
- Эмуляция поведения человека;
- Язык сервиса – английский;
Стоимость, в месяц:
- Бесплатный аккаунт с возможностью парсить до 500 страниц в месяц;
- 4 тарифных плана $19, $49, $99, $199.9 отличающиеся количеством страниц которые вы можете парсить, от 500 до 9000;
- Enterprise, настраиваемый, договорной план для задач под запрос.
Scraper.Ai – расширение с широким набором функциональности и демократичными ценами, работает с Chrome, Firefox и Edge.
Особенности:
- Сбор данных с сайта без программирования;
- Готовые шаблоны для Facebook, Instagram и Twitter;
- Поддержка пагинации с дозагрузкой;
- Автоматическое заполнение форм;
- Работает с браузерами Chrome, Firefox, Edge;
- Планировщик;
- Отслеживание изменений на сайте;
- Лимит на количество страниц для сохранения квоты;
- Язык сервиса – английский.
Стоимость, в месяц:
- Бесплатный тариф на 3 месяца с возможностью парсить до 50 страниц;
- 3 тарифных плана $9, $49, $99 отличающиеся количеством страниц которые вы можете парсить.
В зависимости от решаемых задач
Мониторинг конкурентов
Сервисы для мониторинга цен позволяют отслеживать динамику цен конкурентов на те же товарные позиции, которые продаете и вы. Далее цены сравниваются и вы можете повышать или понижать стоимость в зависимости от ситуации на рынке. Это позволяет в каждый момент времени предлагать самую выгодную цену на рынке, делая покупку в вашем магазине привлекательнее чем у конкурента, и не упустить прибыль, если конкуренты по какой-то причине подняли цены.
Подобные сервисы часто адаптированы к какому-либо маркетплейсу, для того чтобы получить цены интернет-магазинов, торгующих со своего сайта, нужно настраивать сбор данных самостоятельно или заказывать настройку парсинга индивидуально.
Монетизация подобных сервисов – подписочная модель с тарифной сеткой, ранжирующей количество собираемых цен/конкурентов.
Организация совместных закупок
Подобные сервисы предназначены для организации совестных закупок в социальных сетях. Такие парсеры собирают данные о товарах выгружают их в группы ВКонтакте и Одноклассники, что позволяет автоматизировать процесс наполнения витрины и мониторить ассортимент, остатки и цены на сайтах поставщиков. Как правило, эти парсеры имеют личный кабинет с возможностью управления, настроенные интеграции для сбора данных, систему уведомлений, возможность экспортировать данные и не требуют доработки.
Монетизация – подписка с тарификацией, зависящей от количества сайтов.
Автоматизация интернет-магазинов
Такие сервисы позволяют автоматизировать загрузку товаров (картинки, описания, характеристики) от оптовика, синхронизируют цены и остатки. Это позволяет вести работу по добавлению товара и управлению ценами в полностью автоматизированном режиме и экономить на персонале. В качестве источника может выступать как xml или csv файл, так и сайт, с которого робот забирает информацию.
Парсинг SEO данных и аналитика
Парсеры применяемые для целей поисковой оптимизации помогают собирать мета данные (H1, Title, Description), ключевые слова, составлять семантическое ядро, собирать поведенческие и количественные аналитические данные о конкурентах. Спектр инструментов очень широк по функциональности, рассмотрим популярные сервисы, чтобы вы могли подобрать подходящий.
SiteAnalyzer – парсинг-программа для проверки основных технических и SEO данных сайтов. Главная особенность – программа полностью бесплатна. Работает на локальном компьютере, доступна только для ОС Windows.
Особенности:
- Не требовательна к ресурсам компьютера;
- Проверка страниц, изображений, скриптов и документов;
- Проверка кодов ответа (200, 404…);
- Проверка заголовков Title, Description, Сanonical;
- Поиск дубликатов страниц;
- Анализ внутренних и внешних ссылок;
- Работает на Windows;
- Экспорт данных в CSV, Excel, PDF;
- Локализация на 17 языков, в том числе русский;
Стоимость:
- Бесплатно.
Screaming Frog SEO Spider – мощная и популярная программа для СЕО аудита сайта. Парсер зарекомендовал себя как один из лучших в своем классе и предоставляет широкий функционал для проведения SEO анализа.
Особенности:
- Требовательна к ресурсам компьютера;
- Поддержка API Google Analytics и Google Search Console (Google Webmaster);
- Поддержка User-Agent;
- Поддержка редиректов URL-адресов (локальный htaccess);
- Планировщик;
- Настраиваемая конфигурация сканирования;
- Проверка страниц, изображений, скриптов и документов;
- Проверка кодов ответа (200, 404…);
- Проверка заголовков Title, Description, Сanonical;
- Поиск дубликатов страниц;
- Анализ внутренних и внешних ссылок;
- Работает на Windows, MacOS, Ubuntu;
- Экспорт данных;
- Англоязычный интерфейс.
Стоимость:
- Бесплатная версия ограничена сканированием 500 адресов и урезанной функциональностью;
- Платная полнофункциональная версия £149.99 (примерно $200 или 14 600 руб.).
ComparseR – специализация программы аналитика индексации сайта в поисковых системах Яндекс и Google. Вы сможете выяснить какие страницы находятся в поиске, а какие нет и проанализировать их.
Особенности:
- Поиск страниц, находящихся в индексе;
- Поддержка регулярных выражений при настройке;
- Авто ввод капчи;
- Проверка кодов ответа (200, 404…);
- Проверка заголовков Title, Description, Сanonical;
- Поиск дубликатов страниц;
- Анализ внутренних и внешних ссылок;
- Работает на Windows;
- Экспорт данных;
- Русскоязычный интерфейс.
Стоимость:
- Бесплатная версия парсит первые 150 страниц или первые 150 результатов выдачи;
- Платная полнофункциональная версия стоит 2000 руб. без ограничения по времени.
Парсеры на основе таблиц
Такие парсеры собирают данные прямо в таблицы excel и google sheets. В основе действия таких парсеров лежат макросы автоматизирующие действия или специальные формулы извлекающие данные с сайтов. Подобные парсеры подходят для несложных задач, когда собираемые данные не защищены и находятся на простых, не динамичных сайтах.
ParserOk – парсинг сайтов на основе vba(макросов) в таблицы Microsoft Excel. Надстройка позволяет импортировать данные с сайтов по заранее созданным шаблонам и относительно проста в настройке. Недостатком является то, что если шаблон не соответствует вашему запросу, то потребуется доработка.
Стоимость лицензии составляет 2700 р., демо версия рассчитана на 10 дней.
Функции google sheets – importhtml и importxml – функции позволяющие импортировать данные прямо в таблицы. При помощи этих функций можно организовать несложный сбор данных по заранее запрограммированным вводным. Знание языка запросов “Xpath” существенно расширит область применения формул.
Настраиваемые решения для парсинга
Подобные сервисы работают “под ключ”, подходят к задаче индивидуально, парсинг пишется под конкретный запрос. Такие решения лучше всего подходят для частных задач бизнеса, например, когда нужно анализировать конкурентов, собирать определенные типы данных и делать это регулярно. Плюсы таких решений в том, что специально разработанное под задачу решение соберет данные даже с хорошо защищенных сайтов или данные, которые требуют интерпретации, например когда цена выводится не текстом, а в виде картинки. Программы и сервисы с самостоятельной настройкой в этих ситуациях не справятся с подобной задачей. Плюс, подобные сервисы не требуют выделять время отдельного сотрудника на сбор данных или переделку парсинга в случае изменения на сайте источнике.
Стоимость работы с индивидуально настроенным парсингом, если у вас несколько разных сайтов и необходимость регулярно получать данные будет выгодней, это не сложно проверить если посчитать стоимость готового решения + стоимость программиста для написания парсинга и его поддержки + стоимость содержания серверов.
Примеры подобных сервисов есть в начале статьи в разделе облачных парсеров, многие из них предлагают настраиваемые решения. Добавим русскоязычный сервис.
iDatica – сервис специализируется на организации парсинга, очистки данных, матчинга и визуализации данных под запрос. iDatica имеет русскоязычную поддержку, опытных специалистов и зарекомендовала себя как надежный партнер для разработки решений сбора и визуализации данных. По запросу команда выделяет аналитика для работы с вашими проектами.
iDatica – сервис специализируется на организации парсинга, очистки данных, матчинга и визуализации данных под запрос
Особенности сервиса:
- Персональный подход к задаче;
- Выполнение задач под ключ, от вас требуется только описать задачу;
- Работа с сайтами любой сложности;
- Возможность подключить BI сервисы для визуализации;
- Возможность подключить аналитика;
- Язык сервиса – русский.
Стоимость, в месяц:
- От 2000 рублей, рассчитывается исходя из сложности и периодичности парсинга.
Как правильно выбрать парсер
- Сначала определите ваши задачи: мониторинг цен, продуктовая аналитика, машинное обучение, SEO данные, автоматизация процессов;
- Определите источники сбора данных: сайты конкурентов, источники данных для обучения, ваш сайт и т.д.;
- Определите объем данных, который вы планируете собирать, от этого напрямую зависит какие ресурсы потребуются на реализацию проекта;
- Определите частоту сбора данных.
Если у вас стандартная задача с небольшим объемом данных и есть отдельный человек для выполнения задачи, то вам подойдет готовое решение в виде программы или расширения для браузера.
Для парсинга сложных сайтов с определенной регулярностью обратите внимание на облачные решения. Вам потребуется отдельный сотрудник для ведения этого проекта.
Если задача завязана на увеличение прибыли или даже жизнеспособность проекта стоит обратить внимание на облачный сервис с возможностью программировать или библиотеки для парсинга, выделить отдельного программиста для этой задачи и серверные мощности.
Если нужно получить решение быстро и нужно быть уверенным в качестве результата, стоить выбрать компанию реализующую проект под ключ.