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)    # находит элементы заново
ℹ Как это работает
Scrapling использует алгоритмы подобия для сопоставления структуры DOM. Это не машинное обучение — скорее умный fuzzy-matching по дереву документа. Подход работает даже при смене CSS-фреймворка сайта.

Три уровня фетчинга

Фреймворк предлагает три типа фетчеров (fetchers) с единым API, но разным уровнем скрытности:

ФетчерКак работаетСкрытностьСкорость
FetcherHTTP-запросы через curl_cffiСредняя (имитация TLS-отпечатков)Высокая
StealthyFetcherHeadless-браузер со спуфингомВысокая (обход Cloudflare Turnstile)Средняя
DynamicFetcherPlaywright/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.

📝 Пример использования
Подключив MCP-сервер Scrapling к Claude Code, можно попросить AI «собери цены с этого каталога» — и модель сама вызовет нужные методы Scrapling для извлечения данных.

Scrapling vs конкуренты

ВозможностьScraplingScrapyBeautifulSoup
Парсинг HTMLДаДаДа
HTTP-запросыДаДаНет (нужен requests)
Обход антибот-защитИз коробкиНетНет
Адаптивный поиск элементовДаНетНет
Spider-фреймворкДаДаНет
MCP-сервер для AIДаНетНет
Async-поддержкаПолнаяДаНет

Что это значит для индустрии

Scrapling показывает, куда движется веб-скрапинг: от хрупких скриптов с жёсткими селекторами к адаптивным системам, которые переживают редизайны. Интеграция с AI через MCP — логичный следующий шаг: вместо написания парсеров вручную можно описать задачу на естественном языке.

Проект доступен на PyPI (pip install scrapling) и распространяется под открытой лицензией. Покрытие тестами — 92%, полная типизация, документация на восьми языках, включая русский.