Парсер (скрепер, краулер) – інструмент для пошуку інформації із фрагментів коду сайтів. Використовується для автоматизації збору даних із різних джерел – веб-сторінок, документів, мультимедіа тощо. З’явився досить давно, проте пік розвитку парсингу припав на період формування терміну 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. Має:
- Відмінною масштабованістю;
- Розширюваність за рахунок додавання нових бібліотек;
- Можливість керування потоками при скануванні;
- Низька затримка (або повна її відсутність) при парсингу.