Парсер (скрепер, краулер) – инструмент для поиска информации из фрагментов кода сайтов. Используется для автоматизации сбора данных из различных источников – веб-страниц, документов, мультимедиа и т.д. Появился достаточно давно, однако пик развития парсинга пришелся на период формирования термина Big Data. И сегодня, скрипты являются неотъемлемой частью сервисов для мониторинга цен, конкурентной разведки, аналитики рынка и т.д.
При этом стоит отметить, что большинство сервисов платные, а их код – скрыт от пользователей. Тем не менее, парсеры с открытым кодом по-прежнему есть и пользуются большим спросом. Особенно среди предпринимателей, обладающих хотя бы базовыми навыками программирования. Ведь на основе исходного кода программы или приложения можно создать собственный скрепер, «заточенный» под конкретный бизнес, цели или задачи.
Поэтому мы решили рассказать про 10 наипопулярнейших инструментов для парсинга, разработчики которых решили не закрывать исходный код и дали возможность комьюнити «дорабатывать» скреперы, трансформируя их под собственные нужды.

1. Scrapy
Один из самых популярных веб-сканеров, написанных на языке программирования Python. Может не просто сканировать и извлекать данные с сайтов, но и структурировать их, сохраняя в удобные для дальнейшей обработки форматы. Построен на основе сложной асинхронной сетевой инфраструктуры, ускоряющей прием и обработку запросов. Является самым эффективным инструментом с наиболее гибкими настройками параметров парсинга и используется при необходимости в очистке крупных проектов.
К плюсам можно отнести:
- Скорость;
- Мощность;
- Простоту;
- Масштабируемость;
- Хорошее комьюнити;
- Возможность работы через облако.
2. Heritrix
Парсер, написанный на языке Java. Используется для архивирования данных. «Читает» и выполняет команды robots.txt, сканирует мета-теги, подстраивается под нормальный темп сбора информации, не нарушая функционирования сканируемого сайта. Доступ к панели управления осуществляется через браузер.
Достоинства:
- Возможность подключения дополнительных модулей;
- Веб-интерфейс, делающий инструмент мультиплатформенным;
- Не игнорирует команды robots.txt и meta robot;
- Совместим с другими инструментами аналитики.
3. Web-Harvest
Скрепер, написанный языком Java. Может собирать данные со множества страниц, используя XSLT, XQuery и регулярные выражения для фильтрации контента, может расширяться за счет добавления пользовательских библиотек.
Особенности:
- Особые алгоритмы обработки текста и XML;
- Мощная серверная составляющая;
- Создание собственных сценариев для интеграции в настройки парсера.
4. MechanicalSoup
Библиотека Python, имитирующая поведение человека при посещении сайта через популярные браузеры. Создана на основе запросов “Питона” из http-сессий а также навигации по документам Beautiful Soup. Сохраняет и отправляет файлы Cookies, воспринимает редиректы, автоматически переходит по ссылкам, может отправлять формы.
Преимущества:
- Достоверная имитация поведения пользователя;
- Молниеносная скорость парсинга простых сайтов;
- Поддержка стилей CSS и селекторов XPath.
5. Apify SDK
Один из лучших «скребков» на JavaScript с возможностью масштабирования библиотеки парсинга, создания уникальных сценариев извлечения информации с технически сложных проектов, автоматизация большинства процессов через Chrome, Puppeteer. А RequestQueue и AutoscaledPool позволяют парсить не только сам сайт, но и его исходящие ссылки.
Плюсы:
- Масштабирование;
- Обход блокировок посредством ротации прокси;
- Встроенная поддержка популярных плагинов для парсинга.
6. Apache Nutch
Парсер на Java с модульной архитектурой, позволяющей подключать плагины для синтаксического анализа текстового и мультимедийного контента, а также расширять интерфейс за счет добавления или исключения ненужных полей с параметрами поиска.
Особенности:
- Простая расширяемость;
- Отличная масштабируемость;
- Подключаемые модули синтаксического анализа;
- Собственные протоколы безопасности;
- Облачное хранилище;
- Индексация.
7. Jaunt
Еще один парсер на JAVA. Сверхбыстрый, суперлегкий, абсолютно автономный браузер, встроенный в приложение, позволяет контролировать каждый отправляемый запрос.
Достоинства
- Контроль каждого HTTP-запроса и ответа;
- Совместимость с REST API;
- Обход регистрации, аутентификации;
- Поддержка запросов с RegEx, DOM, JSON.
8. Node-crawler
Парсер, созданный на основе Node.js, поддерживающий неблокируемый асинхронный ввод-вывод данных, что обеспечивает максимально комфортный парсинг сайтов с множеством страниц. Позволяет:
- Контролировать скорость скрепинга;
- Задавать приоритетность отдельных ссылок;
- Настраивать количество повторения попыток парсинга.
9. PySpider
Мощнейший краулер, написанный на «питоне». Отличается простым веб-интерфейсом, распределенной архитектурой, наличием планировщика задач и процессов, поддержкой баз данных MongoDB и mySQL. Из особенностей%
- Простой, понятный интерфейс;
- Гибкие настройки параметров парсинга;
- Менеджер проектов;
- Детализированные отчеты;
- Распределенная архитектура.
10. StormCrawler
Полноценный поисковый робот, состоящий из набора повторяющихся ресурсов и компонентов, написанных на Java. Обладает:
- Отличной масштабируемостью;
- Расширяемостью за счет добавления новых библиотек;
- Возможностью управления потоками при сканировании;
- Низкой задержкой (или полным ее отсутствием) при парсинге.