Outil open source de web scraping et d'extraction de données haute performance, optimisé pour les LLM et les agents d'IA

Apache-2.0Pythoncrawl4aiunclecode 50.5k Last Updated: August 07, 2025

Crawl4AI - Un Robot d'Exploration Web Intelligent Open Source Optimisé pour les LLM

Aperçu du Projet

Crawl4AI est un robot d'exploration web haute vitesse, prêt pour l'IA, conçu sur mesure pour les LLM, les agents d'IA et les pipelines de données. Entièrement open source, flexible et conçu pour des performances en temps réel, le projet offre aux développeurs une vitesse, une précision et une facilité de déploiement inégalées.

Caractéristiques Principales

🤖 Conçu pour les LLM

  • Génère un Markdown intelligent et propre, optimisé pour les applications RAG et de fine-tuning
  • Fournit un contenu structuré et propre, adapté au traitement par les modèles d'IA
  • Prend en charge tous les LLM (open source et propriétaires) pour l'extraction de données structurées

⚡ Vitesse Éclair

  • Offre des résultats 6 fois plus rapides, avec des performances en temps réel et rentables
  • Basé sur une architecture asynchrone, prenant en charge le traitement simultané à grande échelle
  • Planificateur adaptatif à la mémoire, ajustant dynamiquement la concurrence en fonction de la mémoire système

🌐 Contrôle Flexible du Navigateur

  • Gestion des sessions, prise en charge des proxys et hooks personnalisés
  • Prend en charge les navigateurs propres à l'utilisateur, offrant un contrôle total et évitant la détection des robots
  • Gestion des profils de navigateur, sauvegarde de l'état d'authentification, des cookies et des paramètres
  • Prise en charge de plusieurs navigateurs : Chromium, Firefox et WebKit

🧠 Intelligence Heuristique

  • Utilise des algorithmes avancés pour une extraction efficace, réduisant la dépendance aux modèles coûteux
  • Filtrage par algorithme BM25, extraction des informations essentielles et suppression du contenu non pertinent
  • Nettoyage intelligent du contenu et traitement de la réduction du bruit

Principaux Modules Fonctionnels

📝 Génération de Markdown

  • Markdown Propre : Génère un Markdown structuré avec une mise en forme précise
  • Markdown Adapté : Basé sur un filtrage heuristique, supprime le bruit et les parties non pertinentes
  • Citations et Références : Convertit les liens de page en une liste de références numérotées avec des citations propres
  • Stratégies Personnalisées : Les utilisateurs peuvent créer des stratégies de génération de Markdown adaptées à des besoins spécifiques

📊 Extraction de Données Structurées

  • Extraction Pilotée par LLM : Prend en charge tous les LLM pour l'extraction de données structurées
  • Stratégies de Segmentation : Met en œuvre la segmentation (basée sur le thème, les expressions régulières, le niveau de la phrase) pour le traitement du contenu ciblé
  • Similarité Cosinus : Trouve des blocs de contenu pertinents basés sur les requêtes de l'utilisateur pour l'extraction sémantique
  • Extraction par Sélecteurs CSS : Utilise XPath et les sélecteurs CSS pour une extraction rapide des modèles
  • Définition de Schéma : Définit des schémas personnalisés pour extraire du JSON structuré à partir de modèles répétitifs

🔎 Fonctionnalités d'Exploration et de Récupération

  • Prise en Charge des Médias : Extrait des images, de l'audio, de la vidéo et des formats d'image réactifs
  • Exploration Dynamique : Exécute JavaScript et attend l'extraction de contenu dynamique asynchrone/synchrone
  • Fonctionnalité de Capture d'Écran : Capture des captures d'écran de la page pendant l'exploration pour le débogage ou l'analyse
  • Exploration de Données Brutes : Traite directement le HTML brut ou les fichiers locaux
  • Extraction Complète des Liens : Extrait les liens internes, externes et le contenu iframe intégré
  • Hooks Personnalisables : Définit des hooks à chaque étape pour personnaliser le comportement de l'exploration
  • Mécanisme de Cache : Met en cache les données pour améliorer la vitesse et éviter les récupérations répétées
  • Gestion du Chargement Paresseux : Attend que les images soient complètement chargées, garantissant qu'aucun contenu n'est manqué en raison du chargement paresseux

🚀 Déploiement et Intégration

  • Configuration Dockerisée : Image Docker optimisée, avec serveur FastAPI, pour un déploiement facile
  • Authentification Sécurisée : Authentification par jeton JWT intégrée, assurant la sécurité de l'API
  • Passerelle API : Déploiement en un clic, avec flux de travail API avec authentification par jeton sécurisé
  • Architecture Extensible : Conçue pour une production à grande échelle, optimisant les performances du serveur
  • Déploiement Cloud : Fournit des configurations de déploiement prêtes à l'emploi pour les principales plateformes cloud

Installation

Installation du Package Python


pip install -U crawl4ai


crawl4ai-setup


crawl4ai-doctor

Déploiement Docker


docker pull unclecode/crawl4ai:0.6.0-rN
docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:0.6.0-rN

# webUI:http://localhost:11235/playground

Exemples d'Utilisation de Base

Exploration Simple de Page Web

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())

Interface de Ligne de Commande


crwl https://www.nbcnews.com/business -o markdown


crwl https://docs.crawl4ai.com --deep-crawl bfs --max-pages 10


crwl https://www.example.com/products -q "Extract all product prices"

Extraction de Données Structurées par 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(
            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())

Dernières Fonctionnalités de la Version (v0.6.0)

🌍 Exploration avec Conscience du Monde

Définissez la géolocalisation, la langue et le fuseau horaire pour obtenir un contenu spécifique à la région :

run_config = CrawlerRunConfig(
    url="https://browserleaks.com/geo",
    locale="en-US",
    timezone_id="America/Los_Angeles",
    geolocation=GeolocationConfig(
        latitude=34.0522,
        longitude=-118.2437,
        accuracy=10.0,
    )
)

📊 Extraction de Tableaux vers DataFrame

Extrayez directement les tableaux HTML au format CSV ou pandas DataFrame :


results = 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

🚀 Mise en Pool des Navigateurs

Utilisez des instances de navigateur préchauffées au démarrage de la page, réduisant la latence et l'utilisation de la mémoire

🔌 Intégration MCP

Connectez-vous aux outils d'IA via le protocole de contexte de modèle, tel que Claude Code :


claude mcp add --transport sse c4ai-sse http://localhost:11235/mcp/sse

Architecture Technique

Composants Principaux

  • Moteur d'Exploration Asynchrone : Architecture asynchrone haute performance basée sur Playwright
  • Stratégies de Filtrage de Contenu : Divers algorithmes de filtrage, y compris les filtres d'élagage et les filtres BM25
  • Stratégies d'Extraction : Prend en charge les sélecteurs CSS, les LLM et les stratégies d'extraction personnalisées
  • Générateur de Markdown : Conversion intelligente du contenu au format Markdown convivial pour l'IA
  • Gestion des Navigateurs : Gestion complète du cycle de vie du navigateur et contrôle de session

Méthodes d'Extraction Prises en Charge

  1. Extraction par Sélecteurs CSS : Extraction de données structurées rapide et précise
  2. Extraction par LLM : Utilisation de grands modèles de langage pour une compréhension intelligente du contenu
  3. Exécution JavaScript : Traitement et interaction avec le contenu dynamique
  4. Expressions Régulières : Correspondance de modèles et traitement de texte
  5. Sélecteurs XPath : Localisation avancée des éléments DOM

Avantages en Termes de Performance

  • Amélioration de la Vitesse de 6 Fois : Par rapport aux outils d'exploration traditionnels
  • Optimisation de la Mémoire : Gestion intelligente de la mémoire et récupération de la mémoire
  • Traitement Concurrence : Prend en charge l'exploration simultanée de milliers d'URL
  • Mécanisme de Cache : Mise en cache intelligente réduisant les requêtes répétées
  • Gestion des Ressources : Allocation et limitation adaptatives des ressources

Cas d'Utilisation

Science des Données et Recherche

  • Collecte d'articles universitaires et de données de recherche
  • Études de marché et analyse concurrentielle
  • Exploration de données sur les médias sociaux

IA et Apprentissage Automatique

  • Collecte et prétraitement des données d'entraînement
  • Acquisition de contenu pour les systèmes RAG
  • Construction de graphes de connaissances

Intelligence Économique

  • Surveillance et comparaison des prix
  • Surveillance de l'actualité et de l'opinion publique
  • Agrégation de données d'entreprise

Gestion de Contenu

  • Migration et sauvegarde de sites web
  • Agrégation et distribution de contenu
  • Analyse et optimisation SEO

Feuille de Route de Développement

  • Exploration de Graphes : Utilisation d'algorithmes de recherche de graphes pour une navigation intelligente sur les sites web
  • Exploration Pilotée par Problèmes : Découverte de pages web et extraction de contenu pilotées par le langage naturel
  • Exploration Optimale pour la Connaissance : Maximisation de l'acquisition de connaissances tout en minimisant l'extraction de données
  • Exploration par Agents : Système autonome pour les opérations d'exploration complexes en plusieurs étapes
  • Générateur Automatisé de Schémas : Conversion du langage naturel en schémas d'extraction
  • Exploration Spécifique à un Domaine : Extracteurs préconfigurés pour les plateformes courantes

Communauté et Support

Crawl4AI bénéficie du support d'une communauté open source active, et les contributions de code, les signalements de problèmes et les suggestions sont les bienvenus. Le projet suit la licence Apache 2.0, est entièrement open source et gratuit.

Conclusion

Crawl4AI représente les dernières avancées en matière de technologie d'exploration web, en particulier dans le contexte de l'ère de l'IA. Il offre non seulement toutes les fonctionnalités des robots d'exploration traditionnels, mais il est également spécialement optimisé pour les applications d'IA modernes, ce qui en fait un choix idéal pour les data scientists, les chercheurs en IA et les développeurs. Grâce à ses caractéristiques open source et à sa communauté active, Crawl4AI fait progresser la démocratisation et la normalisation des technologies d'extraction de données web.

Star History Chart