Scrapling — это адаптивный Python-фреймворк для веб-скрейпинга, созданный для решения двух главных проблем парсинга: частых изменений верстки сайтов и блокировок антибот-системами (Cloudflare, Turnstile и др.).
Фреймворк объединяет гибкость классических инструментов (вроде BeautifulSoup и Scrapy) с умным алгоритмом поиска элементов и встроенной системой обхода защит.
Главные возможности Scrapling
Умное отслеживание элементов (Adaptive Parsing): Если сайт обновляет CSS-классы или структуру DOM, Scrapling находит нужные блоки по алгоритмам сходства, ориентируясь на ранее сохраненный «слепок» элемента.
Трехуровневая система загрузчиков (Fetchers):
Fetcher: быстрые HTTP-запросы с эмуляцией TLS-отпечатков.
DynamicFetcher: автоматизация реального браузера (Playwright/Patchright) для рендеринга JavaScript.
StealthyFetcher: режим скрытности с маскировкой утечек CDP, эмуляцией действия пользователя и автоматическим прохождением проверок Cloudflare.
Полноценный Spider-фреймворк: Поддержка многопоточных пауков с возможностью паузы и возобновления, автоматической ротацией прокси и подстройкой скорости под ответ сервера (AutoThrottle).
Интеграция с ИИ и CLI: Поддержка протокола MCP (scrapling-mcp) для подключения фреймворка напрямую к ИИ-агентам, интерактивная консоль (scrapling shell) и готовность к работе в Docker.
Пример использования
Установка с базовым набором загрузчиков:
pip install "scrapling[fetchers]"
scrapling install
Код с адаптивным поиском и защищенным фетчером:
Python
from scrapling.fetchers import StealthyFetcher
# Запуск скрытного фетчера
StealthyFetcher.adaptive = True
page = StealthyFetcher.fetch('
https://example.com', headless=True)
# При первом запуске сохраняем структуру
products = page.css('.product-item', auto_save=True)
# В будущем, даже если верстка изменилась, элементам применится адаптивный поиск
products = page.css('.product-item', adaptive=True)
Ссылка на репозиторий:
https://github.com/D4Vinci/Scrapling