Skip to main content

Python

Le SDK Python Firecrawl est une surcouche à l’API Firecrawl qui vous aide à convertir facilement des sites web en Markdown.
7 min read

Installation#

Pour installer le SDK Python Firecrawl, utilisez pip :

Python

Utilisation#

Récupérez une clé API sur firecrawl.dev, puis définissez-la comme variable d’environnement FIRECRAWL_API_KEY ou passez-la directement à la classe Firecrawl.

Note

Pas de clé API ? Vous pouvez instancier Firecrawl sans clé et utiliser scrape, search et interact dans l’offre Free sans clé (avec une limite de débit par IP — voir Limites de débit). Toutes les autres méthodes nécessitent une clé.

Python

Extraction d’une URL#

Pour extraire une URL unique, utilisez la méthode scrape. Elle renvoie le contenu de la page sous forme de donnée structurée, y compris le markdown, les métadonnées et tous les autres formats demandés.

Python
Note

Le SDK Python convertit tous les noms de champs de la réponse de camelCase en snake_case. Par exemple, les champs de métadonnées tels que ogImage, ogTitle et sourceURL de l’API deviennent og_image, og_title et source_url dans la réponse du SDK.

Analyse des fichiers envoyés#

Utilisez parse pour envoyer des fichiers locaux (html, pdf, docx, xlsx, etc.) directement à /v2/parse. parse ne prend pas en charge changeTracking ni les options réservées au navigateur, comme actions, wait_for, location, mobile, screenshot et branding.

Python

Explorer un site web#

Pour explorer un site web, utilisez la méthode crawl. Elle prend en arguments l’URL de départ et des options facultatives. Ces options permettent de définir des paramètres supplémentaires pour la tâche d’exploration, comme le nombre maximal de pages à parcourir, les domaines autorisés et le format de sortie. Consultez Pagination pour la pagination automatique/manuelle et les limites.

Python

Exploration du sitemap uniquement#

Utilisez sitemap="only" pour explorer uniquement les URL du sitemap (l’URL de départ est toujours incluse et la découverte de liens HTML est ignorée).

Python

Démarrer un crawl#

Tip
Vous préférez ne pas bloquer l’exécution ? Consultez la section Classe Async ci-dessous.

Lancez une tâche sans attendre avec start_crawl. Elle renvoie un ID de tâche que vous pouvez utiliser pour vérifier l’état. Utilisez crawl lorsque vous voulez un attenteur qui bloque jusqu’à la fin. Voir Pagination pour le comportement et les limites de pagination.

Python

Vérifier l’état d’un crawl#

Vérifiez l’état d’une tâche de crawl avec get_crawl_status. Indiquez l’ID de tâche pour obtenir l’état actuel ainsi que les résultats déjà collectés.

Python

Annuler un crawl#

Annulez une tâche de crawl avec la méthode cancel_crawl. Passez l’ID de tâche renvoyé par start_crawl pour obtenir l’état de l’annulation.

Python

Cartographier un site web#

Utilisez map pour générer une liste d’URL à partir d’un site web. Les options permettent d’adapter le processus de cartographie, par exemple en excluant les sous-domaines ou en s’appuyant sur le sitemap.

Python

Exécuter un agent#

Confiez une tâche de recherche ou d’extraction à un agent à l’aide de la méthode agent. Elle accepte un prompt, un schema facultatif pour structurer la sortie et max_credits pour limiter les crédits que l’exécution peut consommer.

Python

Les exécutions d’agent sont asynchrones. Utilisez start_agent pour obtenir immédiatement un ID de tâche, puis interrogez son état avec get_agent_status.

Python

Chaque exécution enregistre également une trace d’exécution et des instantanés de sortie, que vous pouvez consulter avec get_agent_trace et get_agent_snapshot. Consultez Agent pour le schéma des événements et la liste complète des paramètres.

Exploration d’un site web avec WebSockets#

Pour explorer un site web avec WebSockets, lancez la tâche avec start_crawl et abonnez-vous à l’aide du helper watcher. Créez un watcher avec l’ID de la tâche et attachez des gestionnaires (par exemple pour page, completed, failed) avant d’appeler start().

Python

Les points de terminaison Firecrawl pour crawl et batch scrape renvoient une URL next lorsqu’il reste des données. Le SDK Python effectue par défaut une pagination automatique et agrège tous les documents ; dans ce cas, next vaut None. Vous pouvez désactiver l’auto‑pagination ou définir des limites pour contrôler le comportement de la pagination.

PaginationConfig#

Utilisez PaginationConfig pour contrôler le comportement de la pagination lorsque vous appelez get_crawl_status ou get_batch_scrape_status :

Python
OptionTypePar défautDescription
auto_paginateboolTrueLorsque True, récupère automatiquement toutes les pages et agrège les résultats. Définissez sur False pour récupérer les pages une par une.
max_pagesintNoneS'arrête après avoir récupéré ce nombre de pages (s'applique uniquement lorsque auto_paginate=True).
max_resultsintNoneS'arrête après avoir collecté ce nombre de documents (s'applique uniquement lorsque auto_paginate=True).
max_wait_timeintNoneS'arrête après ce nombre de secondes (s'applique uniquement lorsque auto_paginate=True).

Aides à la pagination manuelle#

Lorsque auto_paginate=False, la réponse inclut une URL next si davantage de données sont disponibles. Utilisez ces méthodes utilitaires pour récupérer les pages suivantes :

  • get_crawl_status_page(next_url) - Récupère la page suivante des résultats de crawl en utilisant l'URL opaque next provenant d'une réponse précédente.
  • get_batch_scrape_status_page(next_url) - Récupère la page suivante des résultats de scraping par lot en utilisant l'URL opaque next provenant d'une réponse précédente.

Ces méthodes renvoient le même type de réponse que l'appel de statut initial, y compris une nouvelle URL next s'il reste d'autres pages.

Crawl#

Utilisez la méthode « waiter » crawl pour l’approche la plus simple, ou démarrez un job et paginez manuellement.

Crawl simple (pagination automatique, par défaut)
Crawl manuel avec contrôle de la pagination

Démarrez un job, puis récupérez une page à la fois avec auto_paginate=False. Utilisez get_crawl_status_page pour récupérer les pages suivantes :

Python
Exploration manuelle avec limites (pagination automatique + arrêt anticipé)

Laissez la pagination automatique activée, mais arrêtez plus tôt avec max_pages, max_results ou max_wait_time :

Python

Scrape par lots#

Utilisez la méthode de waiter batch_scrape, ou lancez un job et paginez manuellement.

Extraction par lot simple (pagination automatique, par défaut)
Scraping par lot manuel avec contrôle de la pagination

Lancez une tâche, puis récupérez les résultats page par page avec auto_paginate=False. Utilisez get_batch_scrape_status_page pour récupérer les pages suivantes :

Python
Extraction par lots manuelle avec limites (pagination automatique + arrêt anticipé)

Laissez la pagination automatique activée, mais arrêtez plus tôt avec max_pages, max_results ou max_wait_time :

Python

Gestion des erreurs#

Lorsqu'une requête échoue, le SDK lève une exception accompagnée d'un message descriptif indiquant l'origine du problème. Entourez vos appels de try/except pour intercepter ces exceptions et gérer les erreurs dans votre application.

Classe asynchrone#

Pour les opérations asynchrones, utilisez la classe AsyncFirecrawl. Ses méthodes reprennent celles de Firecrawl, mais elles ne bloquent pas le thread principal.

Python
Python

Lancez des sessions de navigateur dans le cloud et exécutez du code à distance.

Créer une session#

Python

Exécuter du code#

Python

Exécuter JavaScript plutôt que Python :

Python

Profils#

Enregistrez et réutilisez l'état du navigateur (cookies, localStorage, etc.) d'une session à l'autre :

Python

Connexion via le CDP#

Pour un contrôle total de Playwright, connectez-vous directement en utilisant l’URL du CDP :

Python

Lister & fermer des sessions#

Python

Session interactive liée au scrape#

Utilisez un ID de tâche de scrape pour continuer à interagir avec le contexte de page rejoué issu de ce scrape :

  • interact(job_id, ...) exécute du code dans la session de navigateur liée au scrape.
  • Le premier appel à interact initialise automatiquement la session à partir du contexte du scrape.
  • Les appels suivants à interact sur le même ID de tâche réutilisent cet état actif du navigateur.
  • stop_interaction(job_id) arrête la session interactive une fois que vous avez terminé.
Python

Êtes-vous un agent IA qui a besoin d’une clé API Firecrawl ? Consultez firecrawl.dev/agent-onboarding/SKILL.md pour obtenir les instructions d’intégration automatisée.