Last translated: 16 Jun 2025

Translation Not Available Yet

This repository's README hasn't been translated yet. Once translated, it will be easier to read and understand in your native language (中文).

After translating, add the links to README so others can view it directly.

🚀🤖 Crawl4AI: Открытый веб-краулер и скрейпер, дружественный к LLM.

unclecode%2Fcrawl4ai | Trendshift

GitHub Stars GitHub Forks

PyPI version Python Version Downloads

License Code style: black Security: bandit Contributor Covenant

Crawl4AI — это репозиторий №1 по популярности на GitHub, активно поддерживаемый активным сообществом. Он предоставляет сверхбыстрый веб-краулинг, готовый для использования с LLM, AI-агентами и конвейерами данных. Открытый исходный код, гибкость и ориентация на реальное время работы делают Crawl4AI мощным инструментом для разработчиков, предлагая непревзойденную скорость, точность и простоту развертывания.

✨ Посмотрите последние обновления v0.6.0

🎉 Доступна версия 0.6.0! Этот релиз-кандидат включает World-aware Crawling с геолокацией и настройками локали, извлечение таблиц в DataFrame, пул браузеров с предварительным прогревом, захват сетевого и консольного трафика, интеграцию с MCP для AI-инструментов и полностью переработанное развертывание в Docker! Читайте заметки о выпуске →

🤓 Моя личная история

Мое знакомство с компьютерами началось в детстве, когда мой отец, специалист по компьютерным наукам, показал мне компьютер Amstrad. Эти ранние дни пробудили во мне интерес к технологиям, что привело меня к изучению компьютерных наук и специализации в NLP во время аспирантуры. Именно тогда я впервые погрузился в веб-краулинг, создавая инструменты для помощи исследователям в организации статей и извлечении информации из публикаций — сложный, но полезный опыт, который отточил мои навыки в извлечении данных.

В 2023 году я работал над инструментом для проекта и мне понадобился краулер для преобразования веб-страницы в Markdown. Изучая решения, я нашел один, который позиционировался как open-source, но требовал создания аккаунта и генерации API-токена. Хуже того, оказалось, что это SaaS-модель с оплатой $16, и качество не соответствовало моим стандартам. Разочарованный, я осознал, что это более глубокая проблема. Это разочарование перешло в режим турбо-гнева, и я решил создать собственное решение. Всего за несколько дней я разработал Crawl4AI. К моему удивлению, проект стал вирусным, получив тысячи звезд на GitHub и откликнувшись глобальному сообществу.

Я сделал Crawl4AI открытым по двум причинам. Во-первых, это мой способ отдать долг open-source сообществу, которое поддерживало меня на протяжении всей карьеры. Во-вторых, я верю, что данные должны быть доступны всем, а не скрыты за платными стенами или монополизированы немногими. Открытый доступ к данным закладывает основу для демократизации AI, где каждый может обучать свои модели и владеть своей информацией. Эта библиотека — первый шаг в большом путешествии по созданию лучшего open-source инструмента для извлечения и генерации данных, который когда-либо видел мир, создаваемого совместными усилиями страстного сообщества.

Спасибо всем, кто поддерживал этот проект, использовал его и делился отзывами. Ваша поддержка вдохновляет меня мечтать еще больше. Присоединяйтесь, создавайте issues, отправляйте PR или распространяйте информацию. Вместе мы можем создать инструмент, который действительно даст людям доступ к их данным и изменит будущее AI.

🧐 Почему Crawl4AI?

  1. Создан для LLM: Генерирует умный, лаконичный Markdown, оптимизированный для RAG и тонкой настройки моделей.
  2. Молниеносная скорость: Работает в 6 раз быстрее с реальным временем и экономичной производительностью.
  3. Гибкое управление браузером: Предоставляет управление сессиями, прокси и пользовательские хуки для беспрепятственного доступа к данным.
  4. Эвристический интеллект: Использует продвинутые алгоритмы для эффективного извлечения, снижая зависимость от дорогих моделей.
  5. Открытый исходный код и развертывание: Полностью open-source без API-ключей — готов к интеграции с Docker и облачными платформами.
  6. Активное сообщество: Поддерживается активным сообществом и является репозиторием №1 по популярности на GitHub.

🚀 Быстрый старт

  1. Установите Crawl4AI:
# Install the package
pip install -U crawl4ai

# For pre release versions
pip install crawl4ai --pre

# Run post-installation setup
crawl4ai-setup

# Verify your installation
crawl4ai-doctor

Если возникнут проблемы с браузером, их можно установить вручную:

python -m playwright install --with-deps chromium
  1. Запустите простой веб-краулинг с Python:
import asyncio
from crawl4ai import *

async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://www.nbcnews.com/business",
        )
        print(result.markdown)

if __name__ == "__main__":
    asyncio.run(main())
  1. Или используйте новый интерфейс командной строки:
# Basic crawl with markdown output
crwl https://www.nbcnews.com/business -o markdown

# Deep crawl with BFS strategy, max 10 pages
crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10

# Use LLM extraction with a specific question
crwl https://www.example.com/products -q "Extract all product prices"

✨ Возможности

📝 Генерация Markdown
  • 🧹 Чистый Markdown: Генерирует чистый, структурированный Markdown с точным форматированием.
  • 🎯 Оптимизированный Markdown: Эвристическая фильтрация для удаления шума и нерелевантных частей, удобных для обработки AI.
  • 🔗 Цитаты и ссылки: Преобразует ссылки страниц в нумерованный список ссылок с чистыми цитатами.
  • 🛠️ Пользовательские стратегии: Пользователи могут создавать собственные стратегии генерации Markdown под конкретные нужды.
  • 📚 Алгоритм BM25: Использует BM25-фильтрацию для извлечения ключевой информации и удаления нерелевантного контента.
📊 Извлечение структурированных данных
  • 🤖 Извлечение с помощью LLM: Поддерживает все LLM (open-source и проприетарные) для извлечения структурированных данных.
  • 🧱 Стратегии чанкинга: Реализует чанкинг (тематический, regex, на уровне предложений) для целевой обработки контента.
  • 🌌 Косинусное сходство: Находит релевантные чанки контента на основе пользовательских запросов для семантического извлечения.
  • 🔎 Извлечение на основе CSS: Быстрое извлечение данных по схеме с использованием XPath и CSS-селекторов.
  • 🔧 Определение схемы: Позволяет определять пользовательские схемы для извлечения структурированного JSON из повторяющихся паттернов.
🌐 Интеграция с браузером
  • 🖥️ Управляемый браузер: Используйте собственные браузеры с полным контролем, избегая обнаружения ботами.
  • 🔄 Удаленное управление браузером: Подключайтесь к Chrome Developer Tools Protocol для удаленного масштабного извлечения данных.
  • 👤 Профилирование браузера: Создавайте и управляйте постоянными профилями с сохраненными состояниями аутентификации, куками и настройками.
  • 🔒 Управление сессиями: Сохраняйте состояния браузера и повторно используйте их для многоэтапного краулинга.
  • 🧩 Поддержка прокси: Бесшовное подключение к прокси с аутентификацией для безопасного доступа.
  • ⚙️ Полный контроль браузера: Изменяйте заголовки, куки, user agents и многое другое для настройки краулинга.
  • 🌍 Поддержка нескольких браузеров: Совместимость с Chromium, Firefox и WebKit.
  • 📐 Динамическая настройка viewport: Автоматически подстраивает viewport браузера под контент страницы, обеспечивая полный рендеринг и захват всех элементов.
🔎 Краулинг и скрейпинг
  • 🖼️ Поддержка медиа: Извлекает изображения, аудио, видео и адаптивные форматы изображений, такие как srcset и picture.
  • 🚀 Динамический краулинг: Выполняет JS и ожидает асинхронного или синхронного контента для извлечения динамического содержимого.
  • 📸 Скриншоты: Захватывает скриншоты страниц во время краулинга для отладки или анализа.
  • 📂 Краулинг сырых данных: Обрабатывает сырой HTML (raw:) или локальные файлы (file://) напрямую.
  • 🔗 Полное извлечение ссылок: Извлекает внутренние, внешние ссылки и содержимое встроенных iframe.
  • 🛠️ Настраиваемые хуки: Определяйте хуки на каждом этапе для кастомизации поведения краулинга.
  • 💾 Кэширование: Кэширует данные для увеличения скорости и избегания избыточных запросов.
  • 📄 Извлечение метаданных: Получает структурированные метаданные с веб-страниц.
  • 📡 Извлечение содержимого IFrame: Бесшовное извлечение из встроенного содержимого iframe.
  • 🕵️ Обработка ленивой загрузки: Ожидает полной загрузки изображений, гарантируя, что контент не пропущен из-за ленивой загрузки.
  • 🔄 Сканирование всей страницы: Имитирует прокрутку для загрузки и захвата всего динамического контента, идеально подходит для страниц с бесконечной прокруткой.
🚀 Развертывание
  • 🐳 Docker-решение: Оптимизированный Docker-образ с FastAPI сервером для легкого развертывания.
  • 🔑 Безопасная аутентификация: Встроенная JWT-аутентификация для безопасности API.
  • 🔄 API Gateway: Развертывание в один клик с безопасной аутентификацией по токену для API-воркфлоу.
  • 🌐 Масштабируемая архитектура: Разработана для массового производства и оптимизирована для серверной производительности.
  • ☁️ Облачное развертывание: Готовые конфигурации для основных облачных платформ.
🎯 Дополнительные возможности
  • 🕶️ Стелс-режим: Избегает обнаружения ботами, имитируя реальных пользователей.
  • 🏷️ Извлечение контента по тегам: Уточняет краулинг на основе пользовательских тегов, заголовков или метаданных.
  • 🔗 Анализ ссылок: Извлекает и анализирует все ссылки для детального исследования данных.
  • 🛡️ Обработка ошибок: Надежное управление ошибками для бесперебойного выполнения.
  • 🔐 CORS и статическая раздача: Поддерживает кэширование на файловой системе и кросс-доменные запросы.
  • 📖 Четкая документация: Упрощенные и обновленные руководства для быстрого старта и продвинутого использования.
  • 🙌 Признание сообщества: Отмечает вклад участников и pull requests для прозрачности.

Попробуйте сейчас!

✨ Поэкспериментируйте с этим Open In Colab

✨ Посетите наш Сайт документации

Установка 🛠️

Crawl4AI предлагает гибкие варианты установки для различных сценариев использования. Вы можете установить его как Python-пакет или использовать Docker.

🐍 Использование pip

Выберите вариант установки, который лучше всего соответствует вашим потребностям:

Базовая установка

Для базовых задач веб-краулинга и скрейпинга:

pip install crawl4ai
crawl4ai-setup # Setup the browser

По умолчанию это установит асинхронную версию Crawl4AI, использующую Playwright для веб-краулинга.

👉 Примечание: При установке Crawl4AI скрипт crawl4ai-setup должен автоматически установить и настроить Playwright. Однако, если возникнут ошибки, связанные с Playwright, вы можете установить его вручную одним из следующих способов:

  1. Через командную строку:

    playwright install
    
  2. Если предыдущий способ не сработал, попробуйте более конкретную команду:

    python -m playwright install chromium
    

Этот второй метод в некоторых случаях оказывается более надежным.


Установка с синхронной версией

Синхронная версия устарела и будет удалена в будущих версиях. Если вам нужна синхронная версия с использованием Selenium:

pip install crawl4ai[sync]

Установка для разработки

Для участников, которые планируют изменять исходный код:

git clone https://github.com/unclecode/crawl4ai.git
cd crawl4ai
pip install -e .                    # Basic installation in editable mode

Установка дополнительных возможностей:

pip install -e ".[torch]"           # With PyTorch features
pip install -e ".[transformer]"     # With Transformer features
pip install -e ".[cosine]"          # With cosine similarity features
pip install -e ".[sync]"            # With synchronous crawling (Selenium)
pip install -e ".[all]"             # Install all optional features
🐳 Развертывание в Docker

🚀 Теперь доступно! Наша полностью переработанная реализация Docker готова! Это новое решение делает развертывание более эффективным и удобным, чем когда-либо.

Новые возможности Docker

Новая реализация Docker включает:

  • Пул браузеров с предварительным прогревом страниц для более быстрого отклика
  • Интерактивную площадку для тестирования и генерации кода запросов
  • Интеграцию с MCP для прямого подключения к AI-инструментам, таким как Claude Code
  • Комплексные API-эндпоинты, включая извлечение HTML, скриншоты, генерацию PDF и выполнение JavaScript
  • Поддержку мультиархитектур с автоматическим определением (AMD64/ARM64)
  • Оптимизированные ресурсы с улучшенным управлением памятью

Начало работы

# Pull and run the latest release candidate
docker pull unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN # Use your favorite revision number

# Visit the playground at http://localhost:11235/playground

Полную документацию см. в нашем Руководстве по развертыванию Docker.


Быстрый тест

Запустите быстрый тест (работает для обоих вариантов Docker):

import requests

# Submit a crawl job
response = requests.post(
    "http://localhost:11235/crawl",
    json={"urls": "https://example.com", "priority": 10}
)
task_id = response.json()["task_id"]

# Continue polling until the task is complete (status="completed")
result = requests.get(f"http://localhost:11235/task/{task_id}")

Больше примеров см. в нашем Docker Examples. Для расширенной конфигурации, переменных окружения и примеров использования см. Руководство по развертыванию Docker.

🔬 Примеры продвинутого использования 🔬

Структуру проекта можно посмотреть в директории https://github.com/unclecode/crawl4ai/docs/examples. Там вы найдете множество примеров; здесь приведены некоторые популярные.

📝 Эвристическая генерация Markdown с чистым и оптимизированным Markdown
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.content_filter_strategy import PruningContentFilter, BM25ContentFilter
from crawl4ai.markdown_generation_strategy import DefaultMarkdownGenerator

async def main():
    browser_config = BrowserConfig(
        headless=True,  
        verbose=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.ENABLED,
        markdown_generator=DefaultMarkdownGenerator(
            content_filter=PruningContentFilter(threshold=0.48, threshold_type="fixed", min_word_threshold=0)
        ),
        # markdown_generator=DefaultMarkdownGenerator(
        #     content_filter=BM25ContentFilter(user_query="WHEN_WE_FOCUS_BASED_ON_A_USER_QUERY", bm25_threshold=1.0)
        # ),
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url="https://docs.micronaut.io/4.7.6/guide/",
            config=run_config
        )
        print(len(result.markdown.raw_markdown))
        print(len(result.markdown.fit_markdown))

if __name__ == "__main__":
    asyncio.run(main())
🖥️ Выполнение JavaScript и извлечение структурированных данных без LLM
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode
from crawl4ai.extraction_strategy import JsonCssExtractionStrategy
import json

async def main():
    schema = {
    "name": "KidoCode Courses",
    "baseSelector": "section.charge-methodology .w-tab-content > div",
    "fields": [
        {
            "name": "section_title",
            "selector": "h3.heading-50",
            "type": "text",
        },
        {
            "name": "section_description",
            "selector": ".charge-content",
            "type": "text",
        },
        {
            "name": "course_name",
            "selector": ".text-block-93",
            "type": "text",
        },
        {
            "name": "course_description",
            "selector": ".course-content-text",
            "type": "text",
        },
        {
            "name": "course_icon",
            "selector": ".image-92",
            "type": "attribute",
            "attribute": "src"
        }
    }
}

    extraction_strategy = JsonCssExtractionStrategy(schema, verbose=True)

    browser_config = BrowserConfig(
        headless=False,
        verbose=True
    )
    run_config = CrawlerRunConfig(
        extraction_strategy=extraction_strategy,
        js_code=["""(async () => {const tabs = document.querySelectorAll("section.charge-methodology .tabs-menu-3 > div");for(let tab of tabs) {tab.scrollIntoView();tab.click();await new Promise(r => setTimeout(r, 500));}})();"""],
        cache_mode=CacheMode.BYPASS
    )
        
    async with AsyncWebCrawler(config=browser_config) as crawler:
        
        result = await crawler.arun(
            url="https://www.kidocode.com/degrees/technology",
            config=run_config
        )

        companies = json.loads(result.extracted_content)
        print(f"Successfully extracted {len(companies)} companies")
        print(json.dumps(companies[0], indent=2))


if __name__ == "__main__":
    asyncio.run(main())
📚 Извлечение структурированных данных с LLM
import os
import asyncio
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode, LLMConfig
from crawl4ai.extraction_strategy import LLMExtractionStrategy
from pydantic import BaseModel, Field

class OpenAIModelFee(BaseModel):
    model_name: str = Field(..., description="Name of the OpenAI model.")
    input_fee: str = Field(..., description="Fee for input token for the OpenAI model.")
    output_fee: str = Field(..., description="Fee for output token for the OpenAI model.")

async def main():
    browser_config = BrowserConfig(verbose=True)
    run_config = CrawlerRunConfig(
        word_count_threshold=1,
        extraction_strategy=LLMExtractionStrategy(
            # Here you can use any provider that Litellm library supports, for instance: ollama/qwen2
            # provider="ollama/qwen2", api_token="no-token", 
            llm_config = LLMConfig(provider="openai/gpt-4o", api_token=os.getenv('OPENAI_API_KEY')), 
            schema=OpenAIModelFee.schema(),
            extraction_type="schema",
            instruction="""From the crawled content, extract all mentioned model names along with their fees for input and output tokens. 
            Do not miss any models in the entire content. One extracted model JSON format should look like this: 
            {"model_name": "GPT-4", "input_fee": "US$10.00 / 1M tokens", "output_fee": "US$30.00 / 1M tokens"}."""
        ),            
        cache_mode=CacheMode.BYPASS,
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        result = await crawler.arun(
            url='https://openai.com/api/pricing/',
            config=run_config
        )
        print(result.extracted_content)

if __name__ == "__main__":
    asyncio.run(main())
🤖 Использование собственного браузера с пользовательским профилем
import os, sys
from pathlib import Path
import asyncio, time
from crawl4ai import AsyncWebCrawler, BrowserConfig, CrawlerRunConfig, CacheMode

async def test_news_crawl():
    # Create a persistent user data directory
    user_data_dir = os.path.join(Path.home(), ".crawl4ai", "browser_profile")
    os.makedirs(user_data_dir, exist_ok=True)

    browser_config = BrowserConfig(
        verbose=True,
        headless=True,
        user_data_dir=user_data_dir,
        use_persistent_context=True,
    )
    run_config = CrawlerRunConfig(
        cache_mode=CacheMode.BYPASS
    )
    
    async with AsyncWebCrawler(config=browser_config) as crawler:
        url = "ADDRESS_OF_A_CHALLENGING_WEBSITE"
        
        result = await crawler.arun(
            url,
            config=run_config,
            magic=True,
        )
        
        print(f"Successfully crawled {url}")
        print(f"Content length: {len(result.markdown)}")

✨ Последние обновления

Основные изменения в версии 0.6.0

  • 🌎 World-aware Crawling: Установка геолокации, языка и часового пояса для аутентичного локализованного контента:

      crun_cfg = CrawlerRunConfig(
          url="https://browserleaks.com/geo",          # тестовая страница, показывающая ваше местоположение
          locale="en-US",                              # Accept-Language & UI локаль
          timezone_id="America/Los_Angeles",           # JS Date()/Intl часовой пояс
          geolocation=GeolocationConfig(                 # переопределение GPS-координат
              latitude=34.0522,
              longitude=-118.2437,
              accuracy=10.0,
          )
      )
    
  • 📊 Извлечение таблиц в DataFrame: Прямое преобразование HTML-таблиц в CSV или pandas DataFrames:

      crawler = AsyncWebCrawler(config=browser_config)
      await crawler.start()
    
      try:
          # Настройка параметров скрейпинга
          crawl_config = CrawlerRunConfig(
              table_score_threshold=8,  # Строгое обнаружение таблиц
          )
    
          # Извлечение рыночных данных
          results: List[CrawlResult] = await crawler.arun(
              url="https://coinmarketcap.com/?page=1", config=crawl_config
          )
    
          # Обработка результатов
          raw_df = pd.DataFrame()
          for result in results:
              if result.success and result.media["tables"]:
                  raw_df = pd.DataFrame(
                      result.media["tables"][0]["rows"],
                      columns=result.media["tables"][0]["headers"],
                  )
                  break
          print(raw_df.head())
    
      finally:
          await crawler.stop()
    
  • 🚀 Пул браузеров: Страницы запускаются "горячими" с предварительно прогретыми экземплярами браузеров для снижения задержки и использования памяти

  • 🕸️ Захват сети и консоли: Полные логи трафика и MHTML-снимки для отладки:

    crawler_config = CrawlerRunConfig(
        capture_network=True,
        capture_console=True,
        mhtml=True
    )
    
  • 🔌 Интеграция с MCP: Подключение к AI-инструментам, таким как Claude Code, через Model Context Protocol

    # Добавление Crawl4AI в Claude Code
    claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
    
  • 🖥️ Интерактивная площадка: Тестирование конфигураций и генерация API-запросов через встроенный веб-интерфейс по адресу http://localhost:11235//playground

  • 🐳 Переработанное развертывание Docker: Упрощенный мультиархитектурный Docker-образ с улучшенной эффективностью ресурсов

  • 📱 Многоэтапная система сборки: Оптимизированный Dockerfile с улучшениями производительности для конкретных платформ

Подробности читайте в Заметках о выпуске 0.6.0 или проверьте CHANGELOG.

Основные изменения в версии 0.5.0

  • 🚀 Система глубокого сканирования: Исследуйте веб-сайты за пределами начальных URL с помощью стратегий BFS, DFS и BestFirst
  • ⚡ Адаптивный диспетчер памяти: Динамически регулирует параллелизм на основе доступной памяти системы
  • 🔄 Множественные стратегии сканирования: Браузерные и облегченные HTTP-краулеры
  • 💻 Интерфейс командной строки: Новый CLI crwl для удобной работы в терминале
  • 👤 Профилировщик браузера: Создание и управление постоянными профилями браузера
  • 🧠 Ассистент программирования Crawl4AI: ИИ-помощник для написания кода
  • 🏎️ Режим парсинга LXML: Быстрый анализ HTML с использованием библиотеки lxml
  • 🌐 Ротация прокси: Встроенная поддержка смены прокси
  • 🤖 Фильтрация контента LLM: Интеллектуальное создание markdown с использованием LLM
  • 📄 Обработка PDF: Извлечение текста, изображений и метаданных из PDF-файлов

Подробности в заметках о выпуске 0.5.0.

Система нумерации версий в Crawl4AI

Crawl4AI следует стандартным соглашениям Python (PEP 440) для обозначения стабильности и функциональности выпусков.

Объяснение номеров версий

Номера версий имеют формат: ОСНОВНАЯ.МИНОРНАЯ.ПАТЧ (например, 0.4.3)

Предварительные версии

Используются суффиксы для обозначения стадий разработки:

  • dev (0.4.3dev1): Нестабильные версии в разработке
  • a (0.4.3a1): Альфа-релизы с экспериментальными функциями
  • b (0.4.3b1): Бета-релизы с полным функционалом, требующие тестирования
  • rc (0.4.3): Релиз-кандидаты, потенциальные финальные версии

Установка

  • Стабильная версия:

    pip install -U crawl4ai
    
  • Предварительные версии:

    pip install crawl4ai --pre
    
  • Конкретная версия:

    pip install crawl4ai==0.4.3b1
    

Зачем нужны предварительные версии?

Мы используем их для:

  • Тестирования новых функций в реальных условиях
  • Сбора обратной связи перед финальным релизом
  • Обеспечения стабильности для production-сред
  • Предоставления раннего доступа к новым функциям

Для production рекомендуется использовать стабильные версии. Для тестирования новых функций можно использовать флаг --pre.

📖 Документация и план развития

🚨 Обновление документации: На следующей неделе ожидается масштабное обновление документации с учетом последних изменений. Следите за обновлениями!

Текущая документация, включая инструкции по установке, расширенные функции и API, доступна на сайте документации.

План развития и предстоящие функции можно посмотреть в Roadmap.

📈 Задачи разработки
  • 0. Графовый краулер: Умный обход сайтов с использованием алгоритмов поиска по графам
  • 1. Вопросно-ориентированный краулер: Поиск и извлечение контента на основе естественного языка
  • 2. Оптимальный краулер: Максимизация знаний при минимальном извлечении данных
  • 3. Агентный краулер: Автономная система для сложных многоэтапных операций
  • 4. Автоматический генератор схем: Преобразование естественного языка в схемы извлечения
  • 5. Специализированные скрейперы: Преднастроенные инструменты для популярных платформ
  • 6. Индекс веб-вложений: Инфраструктура семантического поиска
  • 7. Интерактивная площадка: Веб-интерфейс для тестирования с ИИ-помощью
  • 8. Монитор производительности: Отслеживание работы краулера в реальном времени
  • 9. Облачная интеграция: Развертывание в один клик
  • 10. Программа спонсорства: Система поддержки с уровнями участия
  • 11. Обучающие материалы: Видео и интерактивные руководства

🤝 Участие в разработке

Мы приветствуем вклад от сообщества. Подробности в руководстве для участников.

Обновленная информация о лицензии:

📄 Лицензия и атрибуция

Проект лицензирован под Apache License 2.0 с требованием атрибуции. Подробности в файле лицензии.

Требования к атрибуции

При использовании Crawl4AI необходимо указать один из вариантов:

1. Бейдж (рекомендуется)

Добавьте один из бейджей в ваш README, документацию или сайт:

ТемаБейдж
Disco Theme (Анимированный)Powered by Crawl4AI
Night Theme (Темный с неоном)Powered by Crawl4AI
Dark Theme (Классический темный)Powered by Crawl4AI
Light Theme (Классический светлый)Powered by Crawl4AI

HTML-код для добавления бейджей:

<!-- Disco Theme (Animated) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-disco.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Night Theme (Dark with Neon) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-night.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Dark Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-dark.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Light Theme (Classic) -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://raw.githubusercontent.com/unclecode/crawl4ai/main/docs/assets/powered-by-light.svg" alt="Powered by Crawl4AI" width="200"/>
</a>

<!-- Simple Shield Badge -->
<a href="https://github.com/unclecode/crawl4ai">
  <img src="https://img.shields.io/badge/Powered%20by-Crawl4AI-blue?style=flat-square" alt="Powered by Crawl4AI"/>
</a>

2. Текстовая атрибуция

Добавьте строку в вашу документацию:

This project uses Crawl4AI (https://github.com/unclecode/crawl4ai) for web data extraction.

📚 Цитирование

Если вы используете Crawl4AI в исследованиях или проектах, процитируйте:

@software{crawl4ai2024,
  author = {UncleCode},
  title = {Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper},
  year = {2024},
  publisher = {GitHub},
  journal = {GitHub Repository},
  howpublished = {\url{https://github.com/unclecode/crawl4ai}},
  commit = {Please use the commit hash you're working with}
}

Текстовый формат цитирования:

UncleCode. (2024). Crawl4AI: Open-source LLM Friendly Web Crawler & Scraper [Computer software]. 
GitHub. https://github.com/unclecode/crawl4ai

📧 Контакты

По вопросам и предложениям:

Удачного сканирования! 🕸️🚀

🗾 Миссия

Наша цель - раскрыть ценность персональных и корпоративных данных, преобразуя цифровые следы в структурированные активы. Crawl4AI предоставляет инструменты с открытым исходным кодом для извлечения и структурирования данных, способствуя созданию экономики общих данных.

Мы стремимся к будущему, где ИИ работает на основе реальных человеческих знаний, а создатели данных получают прямую выгоду. Демократизируя данные и обеспечивая этичный обмен, мы закладываем основу для подлинного развития ИИ.

🔑 Ключевые возможности
  • Капитализация данных: Преобразование цифровых следов в измеримые активы
  • Аутентичные данные для ИИ: Обеспечение ИИ реальными человеческими знаниями
  • Совместная экономика: Создание справедливого рынка данных
🚀 Путь развития
  1. Инструменты с открытым кодом: Платформы для прозрачного извлечения данных
  2. Структурирование цифровых активов: Инструменты для организации знаний
  3. Этичный рынок данных: Безопасная платформа для обмена структурированными данными

Подробности в полном описании миссии.

История звезд

Star History Chart