Когда-то давно в одном из проектов я делал конвертер криптовалют. Так как владельцы проекта экономили на подписках, курсы брали скриптом по расписанию прямо с веб-страниц постороннего сервиса.
API там не было, страницы рендерились на сервере. Каждую страницу приходилось парсить, выковыривая из HTML конечные цифры. Время от времени сервис менял верстку, и поток данных у нас иссякал, нужно было корректировать правила парсинга.
Активность по извлечению данных из веб-страниц называется
скраппинг (или
скрейпинг). Мне для
PersMarket такое нужно, поэтому подбираю современные инструменты. Вот некоторые из них, бесплатные и опенсорсные.
🔹
Scrapy - кроссплатформенный фреймворк для краулинга (это когда ваш скрипт обходит сайты, как поисковый бот Гугла, например) и скраппинга, сделан на
Python. Можно использовать также для мониторинга и автотестирования. 621 контрибьютор в репозитории. Есть подробная
документация.
🔹
CyberScraper 2077 - анонсирован как "AI powered", то есть извлекает данные по-умному, используя внешние или локальные ИИ-модельки. Имеет графический интерфейс. Умеет экспорт в JSON, CSV, HTML, SQL и даже Excel. Есть встроенный "режим невидимки" и решение капчи.
🔹
Crawl4AI - еще один извлекатель данных с поддержкой ИИ, гордится плашкой "Реопзиторий дня #1". Вроде бы очень умный, даже эвристичный, и быстрый, даже слишком, но вот коммитов в этом году не было.
Документация имеется.
🔹
WaterCrawl - этот поактивнее развивается, использует
Python,
Django,
Scrapy и
Celery под капотом для извлечения данных. Поднимается в Docker-контейнере. Имеет поисковый движок и поддержку мульти-язычности. Интегрируется с
n8n и подобными платформами.
🔹
AnyCrawl - пишут, что высокопроизводительный, может работать как с отдельными страницами, так и обходить сайты пачками. Имеет режимы парсинга как голого HTML, так и рендеренного с помощью JS контента через
Playwright и
Puppeteer. Можно запускать через прокси и использовать кэш. Более 3300 звезд на Github и 3,5 сотни форков. Коммиты есть буквально позавчера.
🔹
Botasaurus - фреймворк "все-в-одном", как они его назвали. Умеет не просто парсить, а обходить антибот-защиты, фаерволы и капчи. Там даже демо-гифка есть, как оно само на капчу
Claudflare нажимает. Умеет работать в параллели, кэшировать, очищать данные. Использовать можно прямо в своем Python-скрипте.
И еще один инструмент до кучи -
Monolith, это "Сохранить страницу как" на стероидах. Даете ему адрес, он берет HTML, сдабривает CSS, добавляет JS и картинки, в итоге генерируя единый HTML5 документ в виде файла.
#tools