Scrapling — Python-фреймворк для веб-скрапинга с адаптивным парсингом
Scrapling — open-source фреймворк для веб-скрапинга на Python с адаптивным поиском элементов, обходом антибот-защит и встроенным MCP-сервером для AI.
Python-фреймворк Scrapling набрал свыше 25 000 звёзд на GitHub и продолжает быстро расти. Проект от разработчика Karim Shoair (D4Vinci) покрывает весь цикл веб-скрапинга — от одиночных запросов до масштабных краулов — и выделяется главной фишкой: адаптивный парсер, который сам находит нужные элементы даже после редизайна сайта.
Что такое адаптивный парсинг
Классическая проблема веб-скрапинга: сайт обновил вёрстку — все CSS-селекторы сломались, скрипты перестали работать. Scrapling решает это через «структурные отпечатки» элементов. При первом запуске парсер запоминает не только селектор, но и контекст элемента — его соседей, атрибуты, положение в DOM. При следующем запуске с флагом adaptive=True библиотека ищет элементы по сохранённому отпечатку, даже если классы и структура изменились.
from scrapling.fetchers import StealthyFetcher
page = StealthyFetcher.fetch('https://example.com', headless=True)
products = page.css('.product', auto_save=True) # сохраняет отпечаток
# После редизайна сайта:
products = page.css('.product', adaptive=True) # находит элементы заново
Три уровня фетчинга
Фреймворк предлагает три типа фетчеров (fetchers) с единым API, но разным уровнем скрытности:
| Фетчер | Как работает | Скрытность | Скорость |
|---|---|---|---|
Fetcher | HTTP-запросы через curl_cffi | Средняя (имитация TLS-отпечатков) | Высокая |
StealthyFetcher | Headless-браузер со спуфингом | Высокая (обход Cloudflare Turnstile) | Средняя |
DynamicFetcher | Playwright/Chrome с полной автоматизацией | Средняя | Низкая |
Scrapling обходит Cloudflare Turnstile «из коробки» — это одна из причин популярности проекта среди специалистов по сбору данных.
Fetcher — он самый быстрый. Переключайтесь на StealthyFetcher только если сайт блокирует запросы. DynamicFetcher нужен для страниц с тяжёлым JavaScript-рендерингом.Spider-фреймворк для масштабных краулов
С версии 0.4 Scrapling получил полноценный spider-фреймворк, напоминающий Scrapy по API, но с рядом современных дополнений:
- Pause & Resume — можно остановить краул по Ctrl+C и продолжить с того же места
- Streaming Mode — результаты приходят по мере сбора через
async for - Multi-Session — в одном spider можно комбинировать HTTP-запросы и headless-браузер
- Proxy Rotation — встроенная ротация прокси с циклическими и кастомными стратегиями
graph LR
A[URL-очередь] --> B{Fetcher Router}
B -->|Обычные страницы| C[HTTP Fetcher]
B -->|Защищённые сайты| D[Stealthy Fetcher]
B -->|JS-рендеринг| E[Dynamic Fetcher]
C --> F[Адаптивный парсер]
D --> F
E --> F
F --> G[Результаты / Export]
G --> H[JSON / JSONL / Pipeline]
MCP-сервер для AI-интеграции
Отдельного внимания заслуживает встроенный MCP-сервер (Model Context Protocol). Он позволяет подключать Scrapling как инструмент к Claude, Cursor и другим AI-ассистентам. Сервер сначала извлекает целевой контент со страницы, а затем передаёт его модели — это снижает расход токенов и ускоряет обработку по сравнению с передачей сырого HTML.
Scrapling vs конкуренты
| Возможность | Scrapling | Scrapy | BeautifulSoup |
|---|---|---|---|
| Парсинг HTML | Да | Да | Да |
| HTTP-запросы | Да | Да | Нет (нужен requests) |
| Обход антибот-защит | Из коробки | Нет | Нет |
| Адаптивный поиск элементов | Да | Нет | Нет |
| Spider-фреймворк | Да | Да | Нет |
| MCP-сервер для AI | Да | Нет | Нет |
| Async-поддержка | Полная | Да | Нет |
Что это значит для индустрии
Scrapling показывает, куда движется веб-скрапинг: от хрупких скриптов с жёсткими селекторами к адаптивным системам, которые переживают редизайны. Интеграция с AI через MCP — логичный следующий шаг: вместо написания парсеров вручную можно описать задачу на естественном языке.
Проект доступен на PyPI (pip install scrapling) и распространяется под открытой лицензией. Покрытие тестами — 92%, полная типизация, документация на восьми языках, включая русский.