Crawlee couvre votre exploration et votre scraping de bout en bout et vous aide à créer des scrapers fiables. Rapide.
Crawlee pour Python est ouvert aux premiers utilisateurs !
Vos robots apparaîtront presque comme des humains et passeront sous le radar des protections modernes contre les robots, même avec la configuration par défaut. Crawlee vous offre les outils nécessaires pour explorer le Web à la recherche de liens, récupérer des données et les stocker de manière persistante dans des formats lisibles par machine, sans avoir à vous soucier des détails techniques. Et grâce aux riches options de configuration, vous pouvez modifier presque tous les aspects de Crawlee pour l'adapter aux besoins de votre projet si les paramètres par défaut ne suffisent pas.
Voir la documentation complète, des guides et des exemples sur le site Web du projet Crawlee ?
Nous disposons également d'une implémentation TypeScript de Crawlee, que vous pouvez explorer et utiliser pour vos projets. Visitez notre référentiel GitHub pour plus d'informations Crawlee pour JS/TS sur GitHub.
Nous vous recommandons de visiter le didacticiel d'introduction dans la documentation Crawlee pour plus d'informations.
Crawlee est disponible en tant que package PyPI crawlee
. La fonctionnalité de base est incluse dans le package de base, avec des fonctionnalités supplémentaires disponibles en option pour minimiser la taille du package et les dépendances. Pour installer Crawlee avec toutes les fonctionnalités, exécutez la commande suivante :
pip install ' crawlee[all] '
Ensuite, installez les dépendances Playwright :
playwright install
Vérifiez que Crawlee est installé avec succès :
python -c ' import crawlee; print(crawlee.__version__) '
Pour des instructions d'installation détaillées, consultez la page de documentation de configuration.
Le moyen le plus rapide de démarrer avec Crawlee consiste à utiliser la CLI Crawlee et à sélectionner l'un des modèles préparés. Tout d’abord, assurez-vous que Pipx est installé :
pipx --help
Ensuite, exécutez la CLI et choisissez parmi les modèles disponibles :
pipx run crawlee create my-crawler
Si crawlee
est déjà installé, vous pouvez le lancer en exécutant :
crawlee create my-crawler
Voici quelques exemples pratiques pour vous aider à démarrer avec différents types de robots d’exploration dans Crawlee. Chaque exemple montre comment configurer et exécuter un robot d'exploration pour des cas d'utilisation spécifiques, que vous ayez besoin de gérer de simples pages HTML ou d'interagir avec des sites utilisant beaucoup de JavaScript. Une exécution du robot créera un répertoire storage/
dans votre répertoire de travail actuel.
BeautifulSoupCrawler
télécharge des pages Web à l'aide d'une bibliothèque HTTP et fournit à l'utilisateur un contenu analysé en HTML. Par défaut, il utilise HttpxHttpClient
pour la communication HTTP et BeautifulSoup pour l'analyse HTML. Il est idéal pour les projets nécessitant une extraction efficace des données du contenu HTML. Ce robot a de très bonnes performances puisqu’il n’utilise pas de navigateur. Cependant, si vous devez exécuter du JavaScript côté client pour obtenir votre contenu, cela ne suffira pas et vous devrez utiliser PlaywrightCrawler
. De plus, si vous souhaitez utiliser ce robot, assurez-vous d'installer crawlee
avec beautifulsoup
extra.
import asyncio
from crawlee . beautifulsoup_crawler import BeautifulSoupCrawler , BeautifulSoupCrawlingContext
async def main () -> None :
crawler = BeautifulSoupCrawler (
# Limit the crawl to max requests. Remove or increase it for crawling all links.
max_requests_per_crawl = 10 ,
)
# Define the default request handler, which will be called for every request.
@ crawler . router . default_handler
async def request_handler ( context : BeautifulSoupCrawlingContext ) -> None :
context . log . info ( f'Processing { context . request . url } ...' )
# Extract data from the page.
data = {
'url' : context . request . url ,
'title' : context . soup . title . string if context . soup . title else None ,
}
# Push the extracted data to the default dataset.
await context . push_data ( data )
# Enqueue all links found on the page.
await context . enqueue_links ()
# Run the crawler with the initial list of URLs.
await crawler . run ([ 'https://crawlee.dev' ])
if __name__ == '__main__' :
asyncio . run ( main ())
PlaywrightCrawler
utilise un navigateur sans tête pour télécharger des pages Web et fournit une API pour l'extraction de données. Il est construit sur Playwright, une bibliothèque d'automatisation conçue pour gérer les navigateurs sans tête. Il excelle dans la récupération de pages Web qui s'appuient sur JavaScript côté client pour la génération de contenu ou dans des tâches nécessitant une interaction avec du contenu JavaScript. Pour les scénarios dans lesquels l'exécution de JavaScript est inutile ou où des performances supérieures sont requises, envisagez d'utiliser BeautifulSoupCrawler
. De plus, si vous souhaitez utiliser ce robot, assurez-vous d'installer crawlee
avec playwright
Extra.
import asyncio
from crawlee . playwright_crawler import PlaywrightCrawler , PlaywrightCrawlingContext
async def main () -> None :
crawler = PlaywrightCrawler (
# Limit the crawl to max requests. Remove or increase it for crawling all links.
max_requests_per_crawl = 10 ,
)
# Define the default request handler, which will be called for every request.
@ crawler . router . default_handler
async def request_handler ( context : PlaywrightCrawlingContext ) -> None :
context . log . info ( f'Processing { context . request . url } ...' )
# Extract data from the page.
data = {
'url' : context . request . url ,
'title' : await context . page . title (),
}
# Push the extracted data to the default dataset.
await context . push_data ( data )
# Enqueue all links found on the page.
await context . enqueue_links ()
# Run the crawler with the initial list of requests.
await crawler . run ([ 'https://crawlee.dev' ])
if __name__ == '__main__' :
asyncio . run ( main ())
Explorez notre page Exemples dans la documentation Crawlee pour un large éventail de cas d'utilisation et de démonstrations supplémentaires.
Pourquoi Crawlee est-il le choix préféré pour le scraping et l'exploration Web ?
Crawlee est open source et fonctionne n'importe où, mais comme il est développé par Apify, il est facile à configurer sur la plateforme Apify et à exécuter dans le cloud. Visitez le site Web Apify SDK pour en savoir plus sur le déploiement de Crawlee sur la plateforme Apify.
Si vous trouvez un bug ou un problème avec Crawlee, veuillez soumettre un problème sur GitHub. Pour toute question, vous pouvez la poser sur Stack Overflow, dans les discussions GitHub ou vous pouvez rejoindre notre serveur Discord.
Vos contributions au code sont les bienvenues et vous serez félicités pour l'éternité ! Si vous avez des idées d'améliorations, soumettez un problème ou créez une pull request. Pour les directives de contribution et le code de conduite, voir CONTRIBUTING.md.
Ce projet est sous licence Apache License 2.0 - voir le fichier LICENSE pour plus de détails.