D4Vinci/Scrapling

🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!

Инструменты⭐ 82 672Pythonпоследний релиз: v0.4.15
Открыть на GitHub ↗Сайт проекта ↗

Что это за инструмент

Scrapling — это адаптивная библиотека для веб-скрейпинга на Python, которая автоматически адаптируется к изменениям структуры сайтов и обходит антибот-защиты.

Зачем нужен

Инструмент решает проблему хрупкости парсеров: он учится на изменениях верстки и автоматически находит нужные элементы даже после обновления дизайна сайта. Также он позволяет легко запускать масштабные многопоточные краулеры с обходом защит вроде Cloudflare Turnstile.

Что можно реализовать

  • Парсинг данных с сайтов, которые часто меняют структуру HTML без предупреждения
  • Обход антибот-систем (например, Cloudflare Turnstile) при сборе данных
  • Масштабный многопоточный краулинг с возможностью паузы/возобновления и ротацией прокси
  • Интеграция с AI-агентами через MCP (Model Context Protocol) для автоматизированного сбора данных

Ключевые возможности

  • Адаптивный парсинг: элементы находятся автоматически даже при изменении CSS-классов или структуры DOM
  • Встроенные Fetchers (StealthyFetcher, DynamicFetcher) для обхода антибот-защит из коробки
  • Готовый фреймворк Spiders для создания масштабируемых краулеров с минимальным кодом
  • Поддержка CLI и интеграция с AI Agent Skills (OpenClaw, MCP)

👤 Кому подойдёт: разработчики, data-инженеры, исследователи данных, AI-разработчики, работающие с веб-данными

Релизы

v0.4.15majorbreaking
🕐 28 дн назад · релиз на GitHub ↗

Переработанный MCP-сервер, конвертация в Markdown для RAG, переиспользование вкладок браузера и фиксы Cloudflare.

  • Breaking: MCP-сервер переработан: инструменты разделены на одноразовые и сессии, добавлена аутентификация и привязка к localhost.
  • Added: Вкладки браузера теперь переиспользуются между запросами, что ускоряет автоматизацию и сохраняет состояние.
  • Added: Появился метод Response.markdown() для получения чистого Markdown, готового для LLM, и новый Spider для сбора корпусов под RAG.
  • Fixed: Исправлено решение Cloudflare Turnstile, которое теперь работает стабильно независимо от локали браузера.
v0.4.14patch
🕐 1 мес назад · релиз на GitHub ↗

Исправлена ошибка установки v0.4.13 через uv из-за конфликта зависимостей curl_cffi.

  • Fixed: Устранена проблема, когда uv отказывался устанавливать v0.4.13, тихо откатываясь на старую версию.
  • Fixed: Все зависимости теперь разрешаются на стабильные релизы, исключая необходимость в prerelease-версиях curl_cffi.
v0.4.13minor
🕐 1 мес назад · релиз на GitHub ↗

Добавлены шаблоны XML/CSV-спайдеров, обновлён MCP-сервер до SDK v2, исправлены ошибки импорта и работы с браузерами.

  • Added: Появились новые шаблоны спайдеров: XMLFeedSpider для разбора RSS/Atom и CSVFeedSpider для CSV-файлов с автодекомпрессией.
  • Added: MCP-сервер обновлён до SDK v2: добавлены инструкции для AI-агентов, автоподтверждение операций чтения и новая команда scrapling-mcp.
  • Added: Убрано жесткое привязывание версий Playwright/Patchright; User-Agent теперь динамически соответствует установленной версии Chromium.
  • Fixed: Исправлен краш при импорте из-за рассинхрона версий fingerprints и браузеров, а также ошибка масштабирования пулов в bulk-инструментах.
  • Введена политика раскрытия использования AI при внесении вкладов в проект.
v0.4.12minor
🕐 1 мес назад · релиз на GitHub ↗

Scrapling v0.4.12: автонастройка скорости, экспорт в CSV/XML, защита MCP-сервера и исправление багов.

  • Added: Добавлен AutoThrottle для автоматической регулировки задержек запросов в зависимости от ответа сервера.
  • Added: Появилась возможность экспортировать собранные данные в форматы CSV и XML.
  • Added: MCP-сервер теперь поддерживает аутентификацию по токену и ограничение по хостам.
  • Added: Браузерные фетчеры и сессии MCP могут подключаться к Chrome через HTTP-CDP URL.
  • Fixed: Исправлена потеря куки при кэшировании ответов от браузерного движка в режиме разработки.
  • Fixed: Устранена принудительная установка локали en-US, что снижало подозрительность для сайтов.
v0.4.10minor
🕐 2 мес назад · релиз на GitHub ↗

Добавлена интеграция с Scrapy, поддержка кастомного Chromium в MCP-сервере и исправления багов.

  • Added: Появилась интеграция с Scrapy: декоратор scrapling_response позволяет использовать парсинг Scrapling внутри существующих проектов Scrapy без переписывания кода.
  • Added: MCP-сервер теперь поддерживает запуск на базе пользовательского Chromium-совместимого браузера через аргументы или переменные окружения.
  • Added: Обновлены версии браузеров и отпечатков; для применения изменений требуется выполнить команду scrapling install --force.
  • Fixed: Исправлено искажение текста (mojibake) при загрузке страниц с кодировками, отличными от UTF-8.
  • Fixed: Устранена ошибка в LinkExtractor, из-за которой не фильтровались составные расширения файлов, такие как .tar.gz.
  • Fixed: Исправлена потеря незавершенных запросов при возобновлении паузы в краулинге, а также скорректирован расчет задержек из robots.txt.
v0.4.9patchbreaking
🕐 3 мес назад · релиз на GitHub ↗

Релиз Scrapling v0.4.9: критическое исправление утечки IP через прокси, обновление браузеров и фиксы багов.

  • Breaking: Исправлено молчаливое игнорирование session-level proxy, которое могло привести к утечке реального IP; теперь конфликт session и request-level прокси вызывает ошибку.
  • Added: Обновлены все браузеры и отпечатки; для применения изменений требуется запуск команды scrapling install --force.
  • Added: В CLI добавлен флаг --version для проверки текущей версии.
  • Fixed: Устранены сбои навигации при сочетании init_script с user_data_dir, ошибки индексации при auto_save и проблемы с сохранением кэша на Windows.
  • Fixed: Исправлено определение кодировки при кавычках в заголовке Content-Type и некорректный подсчет схожести в find_similar.