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 : Crawler et Scraper Web Open Source Compatible avec les LLM

unclecode%2Fcrawl4ai | Trendshift

GitHub Stars GitHub Forks

PyPI version Python Version Downloads

License Code style: black Security: bandit Contributor Covenant

Crawl4AI est le dépôt GitHub #1 en tendance, activement maintenu par une communauté dynamique. Il offre un crawling web ultra-rapide et prêt pour l'IA, spécialement conçu pour les LLM, agents IA et pipelines de données. Open source, flexible et optimisé pour les performances en temps réel, Crawl4AI donne aux développeurs une vitesse, une précision et une facilité de déploiement inégalées.

✨ Découvrez la dernière mise à jour v0.6.0

🎉 La version 0.6.0 est maintenant disponible ! Ce candidat à la version introduit le crawling géolocalisé, l'extraction de tableaux en DataFrames, le pooling de navigateurs avec préchauffage, la capture du trafic réseau et console, l'intégration MCP pour les outils IA, et un déploiement Docker entièrement repensé ! Lire les notes de version →

🤓 Mon histoire personnelle

Mon parcours avec les ordinateurs a commencé dans l'enfance lorsque mon père, informaticien, m'a initié à un Amstrad. Ces premiers jours ont éveillé une fascination pour la technologie, me conduisant à étudier l'informatique et à me spécialiser en NLP pendant mes études postuniversitaires. C'est à cette époque que j'ai commencé à explorer le web crawling, construisant des outils pour aider les chercheurs à organiser des articles et extraire des informations de publications - une expérience exigeante mais enrichissante qui a affiné mes compétences en extraction de données.

En 2023, alors que je travaillais sur un outil pour un projet, j'avais besoin d'un crawler pour convertir une page web en markdown. En explorant les solutions, j'en ai trouvé une qui se disait open-source mais nécessitait la création d'un compte et la génération d'un token API. Pire, il s'agissait en réalité d'un modèle SaaS facturant 16$, et sa qualité ne répondait pas à mes attentes. Frustré, j'ai réalisé qu'il s'agissait d'un problème plus profond. Cette frustration s'est transformée en mode turbo colère, et j'ai décidé de construire ma propre solution. En quelques jours seulement, j'ai créé Crawl4AI. À ma grande surprise, il est devenu viral, gagnant des milliers d'étoiles GitHub et résonnant avec une communauté mondiale.

J'ai rendu Crawl4AI open-source pour deux raisons. Premièrement, c'est ma façon de redonner à la communauté open-source qui m'a soutenu tout au long de ma carrière. Deuxièmement, je crois que les données devraient être accessibles à tous, pas enfermées derrière des paywalls ou monopolisées par quelques-uns. L'accès ouvert aux données jette les bases de la démocratisation de l'IA, une vision où les individus peuvent entraîner leurs propres modèles et prendre possession de leurs informations. Cette bibliothèque est la première étape d'un voyage plus large pour créer le meilleur outil open-source d'extraction et de génération de données que le monde ait jamais vu, construit collaborativement par une communauté passionnée.

Merci à tous ceux qui ont soutenu ce projet, l'ont utilisé et partagé des retours. Votre encouragement me motive à rêver encore plus grand. Rejoignez-nous, signalez des problèmes, soumettez des PR ou faites passer le mot. Ensemble, nous pouvons construire un outil qui permet véritablement aux gens d'accéder à leurs propres données et de remodeler l'avenir de l'IA.

🧐 Pourquoi Crawl4AI ?

  1. Conçu pour les LLM : Génère un Markdown intelligent et concis optimisé pour le RAG et le fine-tuning.
  2. Ultra Rapide : Livre des résultats 6x plus vite avec des performances en temps réel et économiques.
  3. Contrôle Flexible du Navigateur : Offre une gestion de session, des proxies et des hooks personnalisés pour un accès transparent aux données.
  4. Intelligence Heuristique : Utilise des algorithmes avancés pour une extraction efficace, réduisant la dépendance aux modèles coûteux.
  5. Open Source et Déployable : Entièrement open-source sans clés API - prêt pour l'intégration Docker et cloud.
  6. Communauté Dynamique : Activement maintenu par une communauté vibrante et le dépôt GitHub #1 en tendance.

🚀 Démarrage Rapide

  1. Installez 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

Si vous rencontrez des problèmes liés au navigateur, vous pouvez les installer manuellement :

python -m playwright install --with-deps chromium
  1. Exécutez un crawl web simple avec 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. Ou utilisez la nouvelle interface en ligne de commande :
# 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"

✨ Fonctionnalités

📝 Génération Markdown
  • 🧹 Markdown Propre : Génère un Markdown propre et structuré avec un formatage précis.
  • Markdown Adapté : Filtrage heuristique pour supprimer le bruit et les parties non pertinentes pour un traitement compatible IA.
  • 🔗 Citations et Références : Convertit les liens de page en une liste de références numérotée avec des citations propres.
  • 🛠️ Stratégies Personnalisées : Les utilisateurs peuvent créer leurs propres stratégies de génération Markdown adaptées à des besoins spécifiques.
  • 📚 Algorithme BM25 : Utilise un filtrage basé sur BM25 pour extraire les informations principales et supprimer le contenu non pertinent.
📊 Extraction de Données Structurées
  • 🤖 Extraction Pilotée par LLM : Prend en charge tous les LLM (open-source et propriétaires) pour l'extraction de données structurées.
  • 🧱 Stratégies de Découpage : Implémente le découpage (par sujet, regex, niveau phrase) pour un traitement ciblé du contenu.
  • 🌌 Similarité Cosinus : Trouve des segments de contenu pertinents basés sur les requêtes utilisateur pour une extraction sémantique.
  • 🔎 Extraction CSS : Extraction rapide de données basée sur des schémas utilisant XPath et les sélecteurs CSS.
  • 🔧 Définition de Schéma : Définissez des schémas personnalisés pour extraire du JSON structuré à partir de motifs répétitifs.
🌐 Intégration Navigateur
  • 🖥️ Navigateur Géré : Utilisez vos propres navigateurs avec un contrôle total, évitant la détection de bots.
  • 🔄 Contrôle à Distance du Navigateur : Connectez-vous au Chrome Developer Tools Protocol pour une extraction de données à grande échelle.
  • 👤 Profileur de Navigateur : Créez et gérez des profils persistants avec des états d'authentification sauvegardés, cookies et paramètres.
  • 🔒 Gestion de Session : Préservez les états du navigateur et réutilisez-les pour un crawling en plusieurs étapes.
  • 🧩 Support Proxy : Connectez-vous de manière transparente à des proxies avec authentification pour un accès sécurisé.
  • ⚙️ Contrôle Complet du Navigateur : Modifiez les en-têtes, cookies, user agents et plus pour des configurations de crawling sur mesure.
  • 🌍 Support Multi-Navigateurs : Compatible avec Chromium, Firefox et WebKit.
  • 📐 Ajustement Dynamique de la Vue : Ajuste automatiquement la vue du navigateur pour correspondre au contenu de la page, assurant un rendu complet et la capture de tous les éléments.
🔎 Crawling & Scraping
  • 🖼️ Support Média : Extrait images, audio, vidéos et formats d'image responsives comme srcset et picture.
  • 🚀 Crawling Dynamique : Exécute JS et attend le contenu asynchrone ou synchrone pour une extraction dynamique.
  • 📸 Captures d'Écran : Capture des screenshots pendant le crawling pour le débogage ou l'analyse.
  • 📂 Crawling de Données Brutes : Traite directement le HTML brut (raw:) ou les fichiers locaux (file://).
  • 🔗 Extraction Complète de Liens : Extrait les liens internes, externes et le contenu des iframes embarqués.
  • 🛠️ Hooks Personnalisables : Définit des hooks à chaque étape pour personnaliser le comportement du crawling.
  • 💾 Mise en Cache : Met en cache les données pour améliorer la vitesse et éviter les récupérations redondantes.
  • 📄 Extraction de Métadonnées : Récupère des métadonnées structurées à partir des pages web.
  • 📡 Extraction de Contenu IFrame : Extraction transparente à partir du contenu des iframes embarqués.
  • 🕵️ Gestion du Chargement Paresseux : Attend que les images soient complètement chargées, assurant qu'aucun contenu n'est manqué à cause du lazy loading.
  • 🔄 Balayage Complet de Page : Simule le défilement pour charger et capturer tout le contenu dynamique, idéal pour les pages à défilement infini.
🚀 Déploiement
  • 🐳 Configuration Dockerisée : Image Docker optimisée avec serveur FastAPI pour un déploiement facile.
  • 🔑 Authentification Sécurisée : Authentification JWT intégrée pour la sécurité de l'API.
  • 🔄 Passerelle API : Déploiement en un clic avec authentification par token sécurisé pour les workflows basés sur API.
  • 🌐 Architecture Scalable : Conçue pour une production à grande échelle et des performances serveur optimisées.
  • ☁️ Déploiement Cloud : Configurations prêtes à déployer pour les principales plateformes cloud.
🎯 Fonctionnalités Supplémentaires
  • 🕶️ Mode Furtif : Évite la détection de bots en imitant les utilisateurs réels.
  • 🏷️ Extraction de Contenu par Tags : Affine le crawling basé sur des tags personnalisés, en-têtes ou métadonnées.
  • 🔗 Analyse de Liens : Extrait et analyse tous les liens pour une exploration détaillée des données.
  • 🛡️ Gestion des Erreurs : Gestion robuste des erreurs pour une exécution transparente.
  • 🔐 CORS & Service Statique : Prend en charge la mise en cache basée sur le système de fichiers et les requêtes cross-origin.
  • 📖 Documentation Claire : Guides simplifiés et mis à jour pour l'onboarding et l'utilisation avancée.
  • 🙌 Reconnaissance Communautaire : Reconnaît les contributeurs et les pull requests pour la transparence.

Essayez-le Maintenant !

✨ Essayez avec ce Open In Colab

✨ Visitez notre Site de Documentation

Installation 🛠️

Crawl4AI offre des options d'installation flexibles pour s'adapter à divers cas d'utilisation. Vous pouvez l'installer comme un package Python ou utiliser Docker.

🐍 Utilisation de pip

Choisissez l'option d'installation qui correspond le mieux à vos besoins :

Installation Basique

Pour les tâches de base de crawling et scraping web :

pip install crawl4ai
crawl4ai-setup # Setup the browser

Par défaut, cela installera la version asynchrone de Crawl4AI, utilisant Playwright pour le crawling web.

👉 Note : Lorsque vous installez Crawl4AI, crawl4ai-setup devrait automatiquement installer et configurer Playwright. Cependant, si vous rencontrez des erreurs liées à Playwright, vous pouvez l'installer manuellement en utilisant l'une de ces méthodes :

  1. Via la ligne de commande :

    playwright install
    
  2. Si la méthode ci-dessus ne fonctionne pas, essayez cette commande plus spécifique :

    python -m playwright install chromium
    

Cette deuxième méthode s'est avérée plus fiable dans certains cas.


Installation avec Version Synchrone

La version synchrone est dépréciée et sera supprimée dans les futures versions. Si vous avez besoin de la version synchrone utilisant Selenium :

pip install crawl4ai[sync]

Installation pour Développement

Pour les contributeurs qui prévoient de modifier le code source :

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

Installez les fonctionnalités optionnelles :

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
🐳 Déploiement Docker

🚀 Maintenant Disponible ! Notre implémentation Docker complètement repensée est là ! Cette nouvelle solution rend le déploiement plus efficace et transparent que jamais.

Nouvelles Fonctionnalités Docker

La nouvelle implémentation Docker inclut :

  • Pooling de navigateurs avec préchauffage des pages pour des temps de réponse plus rapides
  • Playground interactif pour tester et générer du code de requête
  • Intégration MCP pour une connexion directe aux outils IA comme Claude Code
  • Points d'API complets incluant l'extraction HTML, screenshots, génération PDF et exécution JavaScript
  • Support multi-architecture avec détection automatique (AMD64/ARM64)
  • Ressources optimisées avec une meilleure gestion de la mémoire

Pour Commencer

# 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

Pour une documentation complète, consultez notre Guide de Déploiement Docker.


Test Rapide

Exécutez un test rapide (fonctionne pour les deux options 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}")

Pour plus d'exemples, voir nos Exemples Docker. Pour une configuration avancée, les variables d'environnement et des exemples d'utilisation, voir notre Guide de Déploiement Docker.

🔬 Exemples d'Utilisation Avancée 🔬

Vous pouvez consulter la structure du projet dans le répertoire https://github.com/unclecode/crawl4ai/docs/examples. Vous y trouverez une variété d'exemples ; voici quelques exemples populaires.

📝 Génération Markdown Heuristique avec Markdown Propre et Adapté
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())
🖥️ Exécution JavaScript & Extraction de Données Structurées sans LLMs
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())
📚 Extraction de Données Structurées avec LLMs
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())
🤖 Utilisation de votre propre Navigateur avec Profil Utilisateur Personnalisé
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)}")

✨ Mises à Jour Récentes

Points Forts de la Version 0.6.0

  • 🌎 Crawling Géolocalisé : Définissez la géolocalisation, la langue et le fuseau horaire pour un contenu local authentique :

      crun_cfg = CrawlerRunConfig(
          url="https://browserleaks.com/geo",          # page de test montrant votre localisation
          locale="en-US",                              # Accept-Language & locale UI
          timezone_id="America/Los_Angeles",           # Fuseau horaire JS Date()/Intl
          geolocation=GeolocationConfig(                 # remplace les coordonnées GPS
              latitude=34.0522,
              longitude=-118.2437,
              accuracy=10.0,
          )
      )
    
  • 📊 Extraction Tableau-vers-DataFrame : Extrait les tableaux HTML directement en CSV ou pandas DataFrames :

      crawler = AsyncWebCrawler(config=browser_config)
      await crawler.start()
    
      try:
          # Configurez les paramètres de scraping
          crawl_config = CrawlerRunConfig(
              table_score_threshold=8,  # Détection stricte des tableaux
          )
    
          # Exécutez l'extraction de données de marché
          results: List[CrawlResult] = await crawler.arun(
              url="https://coinmarketcap.com/?page=1", config=crawl_config
          )
    
          # Traitez les résultats
          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()
    
  • 🚀 Pooling de Navigateurs : Les pages démarrent chaudes avec des instances de navigateurs préchauffées pour une latence et une utilisation mémoire réduites

  • 🕸️ Capture Réseau et Console : Logs complets du trafic et snapshots MHTML pour le débogage :

    crawler_config = CrawlerRunConfig(
        capture_network=True,
        capture_console=True,
        mhtml=True
    )
    
  • 🔌 Intégration MCP : Connectez-vous aux outils IA comme Claude Code via le Model Context Protocol

    # Ajoutez Crawl4AI à Claude Code
    claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse
    
  • 🖥️ Playground Interactif : Testez des configurations et générez des requêtes API avec l'interface web intégrée à http://localhost:11235//playground

  • 🐳 Déploiement Docker Repensé : Image Docker multi-architecture rationalisée avec une meilleure efficacité des ressources

  • 📱 Système de Build Multi-étapes : Dockerfile optimisé avec des améliorations de performances spécifiques à la plateforme

Lisez les détails complets dans nos Notes de Version 0.6.0 ou consultez le CHANGELOG.

Principales Fonctionnalités de la Version 0.5.0

  • 🚀 Système de Crawling Profond : Explorez les sites web au-delà des URLs initiales avec les stratégies BFS, DFS et BestFirst
  • ⚡ Dispatcher Adaptatif à la Mémoire : Ajuste dynamiquement la concurrence en fonction de la mémoire système
  • 🔄 Stratégies Multiples de Crawling : Crawlers basés sur navigateur et légers HTTP-only
  • 💻 Interface en Ligne de Commande : Nouvelle CLI crwl pour un accès pratique depuis le terminal
  • 👤 Profileur de Navigateur : Créez et gérez des profils de navigateur persistants
  • 🧠 Assistant de Codage Crawl4AI : Assistant de codage alimenté par IA
  • 🏎️ Mode Scraping LXML : Analyse HTML rapide avec la bibliothèque lxml
  • 🌐 Rotation de Proxy : Prise en charge intégrée du changement de proxy
  • 🤖 Filtre de Contenu LLM : Génération intelligente de markdown avec LLMs
  • 📄 Traitement PDF : Extraction de texte, images et métadonnées depuis les fichiers PDF

Consultez les détails complets dans nos Notes de Version 0.5.0.

Numérotation des Versions dans Crawl4AI

Crawl4AI suit les conventions standard de numérotation des versions Python (PEP 440) pour aider les utilisateurs à comprendre la stabilité et les fonctionnalités de chaque version.

Explication des Numéros de Version

Nos numéros de version suivent ce modèle : MAJEUR.MINEUR.CORRECTIF (ex. 0.4.3)

Versions Préliminaires

Nous utilisons différents suffixes pour indiquer les étapes de développement :

  • dev (0.4.3dev1) : Versions de développement, instables
  • a (0.4.3a1) : Versions alpha, fonctionnalités expérimentales
  • b (0.4.3b1) : Versions bêta, fonctionnalités complètes mais nécessitant des tests
  • rc (0.4.3) : Versions candidates, potentielle version finale

Installation

  • Installation standard (version stable) :

    pip install -U crawl4ai
    
  • Installation des versions préliminaires :

    pip install crawl4ai --pre
    
  • Installation d'une version spécifique :

    pip install crawl4ai==0.4.3b1
    

Pourquoi des Versions Préliminaires ?

Nous utilisons des versions préliminaires pour :

  • Tester de nouvelles fonctionnalités dans des scénarios réels
  • Recueillir des feedbacks avant les versions finales
  • Garantir la stabilité pour les utilisateurs en production
  • Permettre aux early adopters d'essayer de nouvelles fonctionnalités

Pour les environnements de production, nous recommandons d'utiliser la version stable. Pour tester de nouvelles fonctionnalités, vous pouvez opter pour les versions préliminaires avec le flag --pre.

📖 Documentation & Feuille de Route

🚨 Alerte Mise à Jour Documentation : Nous entreprenons une refonte majeure de la documentation la semaine prochaine pour refléter les dernières mises à jour et améliorations. Restez à l'écoute pour un guide plus complet et actualisé !

Pour la documentation actuelle, incluant les instructions d'installation, fonctionnalités avancées et référence API, visitez notre Site de Documentation.

Pour consulter nos plans de développement et les fonctionnalités à venir, visitez notre Feuille de Route.

📈 TODOs de Développement
  • 0. Graph Crawler : Parcours intelligent de sites web avec des algorithmes de recherche en graphe pour une extraction complète de pages imbriquées
  • 1. Crawler Basé sur Questions : Découverte web et extraction de contenu pilotée par langage naturel
  • 2. Crawler à Connaissance Optimale : Crawling intelligent maximisant la connaissance tout en minimisant l'extraction de données
  • 3. Crawler Agentique : Système autonome pour des opérations de crawling multi-étapes complexes
  • 4. Générateur Automatique de Schémas : Conversion de langage naturel en schémas d'extraction
  • 5. Scrapers Spécifiques à un Domaine : Extracteurs préconfigurés pour des plateformes courantes (académique, e-commerce)
  • 6. Index d'Embedding Web : Infrastructure de recherche sémantique pour le contenu crawlé
  • 7. Playground Interactif : Interface web pour tester et comparer des stratégies avec assistance IA
  • 8. Moniteur de Performance : Insights en temps réel sur les opérations de crawling
  • 9. Intégration Cloud : Solutions de déploiement en un clic sur différents fournisseurs cloud
  • 10. Programme de Sponsoring : Système de support structuré avec avantages par niveaux
  • 11. Contenu Éducatif : Série vidéo "Comment Crawler" et tutoriels interactifs

🤝 Contributions

Nous accueillons les contributions de la communauté open-source. Consultez nos lignes directrices de contribution pour plus d'informations.

Je vais aider à modifier la section licence avec des badges. Pour l'effet demi-teinte, voici une version avec celui-ci :

Voici la section licence mise à jour :

📄 Licence & Attribution

Ce projet est sous licence Apache 2.0 avec une clause d'attribution obligatoire. Voir le fichier Licence Apache 2.0 pour les détails.

Exigences d'Attribution

Lorsque vous utilisez Crawl4AI, vous devez inclure l'une des méthodes d'attribution suivantes :

1. Attribution par Badge (Recommandé)

Ajoutez l'un de ces badges à votre README, documentation ou site web :

ThèmeBadge
Thème Disco (Animé)Powered by Crawl4AI
Thème Nuit (Sombre avec Neon)Powered by Crawl4AI
Thème Sombre (Classique)Powered by Crawl4AI
Thème Clair (Classique)Powered by Crawl4AI

Code HTML pour ajouter les badges :

<!-- 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. Attribution Textuelle

Ajoutez cette ligne à votre documentation :

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

📚 Citation

Si vous utilisez Crawl4AI dans votre recherche ou projet, veuillez citer :

@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}
}

Format de citation textuelle :

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

📧 Contact

Pour des questions, suggestions ou feedback, n'hésitez pas à nous contacter :

Bon Crawling ! 🕸️🚀

🗾 Mission

Notre mission est de libérer la valeur des données personnelles et d'entreprise en transformant les empreintes digitales en actifs structurés et échangeables. Crawl4AI donne aux individus et organisations des outils open-source pour extraire et structurer les données, favorisant une économie de données partagée.

Nous envisageons un futur où l'IA est alimentée par de vraies connaissances humaines, assurant que les créateurs de données bénéficient directement de leurs contributions. En démocratisant les données et en permettant un partage éthique, nous posons les fondations d'une avancée authentique de l'IA.

🔑 Opportunités Clés
  • Capitalisation des Données : Transformez les empreintes digitales en actifs mesurables et valorisables.
  • Données IA Authentiques : Fournissez aux systèmes IA de vraies connaissances humaines.
  • Économie Partagée : Créez un marché de données équitable profitant aux créateurs de données.
🚀 Parcours de Développement
  1. Outils Open-Source : Plateformes communautaires pour une extraction transparente de données.
  2. Structuration d'Actifs Digitaux : Outils pour organiser et valoriser la connaissance digitale.
  3. Marché de Données Éthique : Une plateforme sécurisée et équitable pour échanger des données structurées.

Pour plus de détails, voir notre déclaration de mission complète.

Historique des Stars

Star History Chart