Об этом проекте

Crawl4AI — это open-source Python-библиотека и инструмент командной строки (CLI) для веб-скрапинга, предназначенный для получения чистого, готового для LLM Markdown-вывода. Широко используется при построении RAG-пайплайнов, AI-агентов и рабочих процессов извлечения данных. ## Обзор Crawl4AI превращает веб в структурированный Markdown, подходящий для последующей обработки ИИ. Поддерживает как программное использование через Python, так и командную строку, с опциональным LLM-управляемым извлечением структурированных данных и/schema-извлечением на основе CSS/XPath. ## Ключевые возможности ### Генерация Markdown - Создаёт чистый структурированный Markdown с заголовками, таблицами и блоками кода - Fit Markdown режим применяет эвристическую фильтрацию для удаления шума и нерелевантного контента - Вывод с учётом цитирования: преобразует ссылки в нумерованные_references_ - BM25-фильтрация контента для извлечения, релевантного запросу - Подключаемые стратегии генерации Markdown ### Извлечение структурированных данных - LLM-управляемое извлечение через LiteLLM, поддержка open-source и проприетарных моделей - JSON-схема на основе CSS-селекторов и XPath - Стратегии чанкинга (темо-ориентированный, regex, пословный) для целевой обработки - Поиск по косинусному сходству для семантического сопоставления контента ### Интеграция с браузером - Асинхронный пул браузеров на базе Playwright - Управление браузером с использованием пользовательских профилей с сохранёнными auth-состояниями и cookies - Удалённое управление браузером через Chrome DevTools Protocol - Поддержка прокси с аутентификацией - Stealth-режим для снижения обнаружения ботов - Поддержка нескольких браузеров (Chromium, Firefox, WebKit) - Динамическая настройка viewport ### Возможности краулинга - Выполнение JavaScript с async/sync wait-поддержкой для динамического контента - Снимок экрана во время краулинга - Извлечение медиа (изображения, аудио, видео, responsive srcset/picture форматы) - Обработка raw HTML и локальных файлов - Комплексное извлечение ссылок, включая iframe-контент - Обработка lazy load и полностраничное сканирование для infinite scroll - Кастомизация на основе хуков на каждом шаге краулинга - Встроенное кэширование ### Развёртывание - Docker-контейнеризированный FastAPI-сервер для API-рабочих процессов - JWT-аутентификация (включена по умолчанию в последних версиях) - Панель мониторинга и интерактивная playground-среда по адресам `/dashboard` и `/playground` - MCP-интеграция для подключения к ИИ-инструментам - Многоархитектурные Docker-образы (AMD64/ARM64) - Готовность к облачному развёртыванию ## Установка ```bash pip install -U crawl4ai crawl4ai-setup ``` Для ручной установки Playwright: ```bash python -m playwright install --with-deps chromium ``` ## Использование ### Python API ```python import asyncio from crawl4ai import AsyncWebCrawler async def main(): async with AsyncWebCrawler() as crawler: result = await crawler.arun(url="https://example.com") print(result.markdown) asyncio.run(main()) ``` ### CLI ```bash # Базовый краулинг crwl https://example.com -o markdown # Глубокий краулинг crwl https://example.com --deep-crawl bfs --max-pages 10 # LLM-экстракция crwl https://example.com -q "Extract all product prices" ``` ### Docker ```bash docker pull unclecode/crawl4ai:latest docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest ``` Затем откройте `http://localhost:11235/dashboard` для панели мониторинга или `http://localhost:11235/playground` для интерактивной тестовой среды. ## Детали проекта - Репозиторий: unclecode/crawl4ai - PyPI: crawl4ai - Документация: https://docs.crawl4ai.com/ - Discord-сообщество: https://discord.gg/jP8KfhDhyN - Спонсоры: https://github.com/sponsors/unclecode Проект делает акцент на открытой доступности и доступной цене, позиционируя себя как self-hosted альтернативу коммерческим API для веб-извлечения. Проект набрал более 50 000 звёзд на GitHub и активно поддерживает безопасность благодаря регулярным релизам.