Обзор современных инструментов для веб-скраппинга
М@ITcanfly4 ч
Подборка актуальных open-source инструментов для парсинга данных, включая решения с поддержкой ИИ и обходом антибот-защиты.
Когда-то давно в одном из проектов я делал конвертер криптовалют. Так как владельцы проекта экономили на подписках, курсы брали скриптом по расписанию прямо с веб-страниц постороннего сервиса.
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
Контекстдемо
Сюда AI будет дописывать короткий фон к сложным постам: что за история, кто участники, ключевые даты и почему это важно — чтобы понять пост без гугления.
Блок появляется только там, где без контекста не разобраться. Сейчас это демо-превью — реальный контекст начнёт генерироваться на бэкенде.
Кратко (AI)
Автор делится личным опытом разработки парсеров и представляет подборку современных инструментов для скраппинга. В список вошли как классические фреймворки вроде Scrapy, так и новые решения с поддержкой ИИ и обходом защиты, такие как Botasaurus и AnyCrawl.
Обсуждение
3Полезный разбор. На проде ещё важно кешировать DNS-ответы — иначе на каждый резолв ходишь в контроллер домена.
Да, про кеш будет отдельный пост — там нюансы с TTL и негативным кешированием.
А как это соотносится с mDNS в мелких сетях? Или это уже другая история?