À propos du projet

Crawl4AI est une bibliothèque Python open-source et un outil CLI pour le crawl et le scraping web, conçu pour produire un Markdown propre et prêt pour les LLM. Il est largement utilisé pour construire des pipelines RAG, des agents IA et des workflows d'extraction de données. ## Aperçu Crawl4AI transforme le web en Markdown structuré adapté au traitement IA en aval. Il prend en charge l'utilisation programmatique Python et une interface en ligne de commande, avec extraction de données structurées pilotée par LLM et extraction basée sur CSS/XPath. ## Capacités clés ### Génération de Markdown - Produit du Markdown propre et structuré avec titres, tableaux et blocs de code - Le mode Fit Markdown applique un filtrage heuristique pour supprimer le bruit et le contenu non pertinent - Sortie consciente des citations qui convertit les liens en références numérotées - Filtrage de contenu basé sur BM25 pour l'extraction pertinente aux requêtes - Stratégies de génération de markdown plugables ### Extraction de données structurées - Extraction pilotée par LLM via LiteLLM, supportant les modèles open-source et propriétaires - Extraction basée sur des schémas JSON en utilisant des sélecteurs CSS et XPath - Stratégies de chunking (basées sur le thème, regex, niveau phrase) pour un traitement ciblé - Recherche par similarité cosinus pour la correspondance sémantique du contenu ### Intégration navigateur - Pool de navigateurs asynchrones alimenté par Playwright - Mode navigateur géré utilisant des profils navigateur personnels avec états d'authentification et cookies sauvegardés - Contrôle de navigateur distant via Chrome DevTools Protocol - Support proxy avec authentification - Mode stealth pour réduire la détection de bots - Support multi-navigateurs (Chromium, Firefox, WebKit) - Ajustement dynamique de la fenêtre d'affichage ### Fonctionnalités de crawl - Exécution JavaScript avec support async/sync pour le contenu dynamique - Capture d'écran pendant les crawls - Extraction de médias (images, audio, vidéo, formats responsive srcset/picture) - Traitement de HTML brut et de fichiers locaux - Extraction complète de liens incluant le contenu iframe - Gestion du lazy load et analyse pleine page pour le défilement infini - Customisation basée sur des hooks à chaque étape du crawl - Mise en cache intégrée ### Déploiement - Serveur FastAPI Dockerisé pour les workflows API - Authentification JWT (activée par défaut dans les versions récentes) - Tableau de bord de monitoring et playground interactif sur `/dashboard` et `/playground` - Intégration MCP pour les connexions outils IA - Images Docker multi-architecture (AMD64/ARM64) - Prêt pour le déploiement cloud ## Installation ```bash pip install -U crawl4ai crawl4ai-setup ``` Pour l'installation manuelle de Playwright : ```bash python -m playwright install --with-deps chromium ``` ## Utilisation ### API Python ```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 # Crawl basique crwl https://example.com -o markdown # Deep crawl crwl https://example.com --deep-crawl bfs --max-pages 10 # Extraction LLM crwl https://example.com -q "Extraire tous les prix des produits" ``` ### Docker ```bash docker pull unclecode/crawl4ai:latest docker run -d -p 11235:11235 --name crawl4ai --shm-size=1g unclecode/crawl4ai:latest ``` Puis visitez `http://localhost:11235/dashboard` pour l'interface de monitoring ou `http://localhost:11235/playground` pour l'environnement de test interactif. ## Détails du projet - Dépôt : unclecode/crawl4ai - PyPI : crawl4ai - Documentation : https://docs.crawl4ai.com/ - Communauté Discord : https://discord.gg/jP8KfhDhyN - Sponsors : https://github.com/sponsors/unclecode Le projet met l'accent sur la disponibilité et l'abordabilité, se positionnant comme une alternative auto-hébergée aux APIs commerciales d'extraction web. Il a accumulé plus de 50 000 étoiles GitHub et maintient activement la sécurité grâce à des releases régulières.