Skip to main content

Rust

Le SDK Rust de Firecrawl est un wrapper de l’API Firecrawl qui vous permet de convertir facilement des sites web en markdown.
4 min read

Installation#

Le SDK Rust officiel est maintenu dans le monorepo de Firecrawl à l’emplacement apps/rust-sdk.

Pour installer le SDK Rust de Firecrawl, ajoutez la dépendance depuis crates.io:

Ou installez-le via Cargo :

Note
Rust 1.70 ou version ultérieure est requis.

Utilisation#

  1. Obtenez une clé API depuis firecrawl.dev
  2. Définissez la clé API dans une variable d’environnement nommée FIRECRAWL_API_KEY, ou passez-la directement à Client::new(...)

Scrapez une page et affichez son markdown :

Les sections ci-dessous portent sur le crawl, le mapping, la recherche et les autres méthodes du SDK.

Scraper une URL#

Pour scraper une seule URL, utilisez la méthode scrape.

extraction JSON#

Extrayez un JSON structuré à l’aide de scrape_with_schema :

Ou configurez directement l’extraction JSON via ScrapeOptions :

Analyse des fichiers envoyés#

Utilisez parse pour envoyer un fichier local (.html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls) en multipart/form-data vers /v2/parse. Le point de terminaison renvoie un Document avec les formats demandés.

ParseOptions omet intentionnellement les champs propres au scrape que /v2/parse rejette (tels que actions, waitFor, location, mobile, screenshot, branding et changeTracking).

Créez un ParseFile à partir d’octets en mémoire ou directement depuis un chemin :

Ou lisez le fichier depuis le disque et n’indiquez pas d’options :

ParseFile#

ConstructeurDescription
ParseFile::from_bytes(filename, bytes)Créer à partir d’un nom de fichier et d’octets en mémoire
ParseFile::from_path(path)Lire les octets depuis le disque et en déduire le nom de fichier
.with_content_type(content_type)Ajouter une indication de type MIME (p. ex. text/html, application/pdf)

ParseOptions#

Champs pris en charge (tous facultatifs, avec des noms en camelCase dans la requête) :

  • formats: Vec<ParseFormat> — au choix parmi Markdown, Html, RawHtml, Links, Images, Summary, Json, Attributes
  • only_main_content: bool
  • include_tags: Vec<String> / exclude_tags: Vec<String>
  • headers: HashMap<String, String>
  • timeout: u32 (ms)
  • parsers: Vec<ParserConfig> (par ex. configuration de l’analyseur PDF)
  • skip_tls_verification: bool
  • remove_base64_images: bool
  • fast_mode: bool
  • block_ads: bool
  • proxy: ParseProxyType (Basic ou Auto)
  • json_options: JsonOptions
  • attribute_selectors: Vec<AttributeSelector>
  • zero_data_retention: bool
  • integration: String, origin: String, use_mock: String

Effectuer le crawl d’un site web#

Pour effectuer le crawl d’un site web et attendre la fin de l’opération, utilisez crawl.

Démarrer un crawl#

Démarrez une tâche sans attendre à l’aide de start_crawl.

Vérifier l’état du crawl#

Suivez la progression du crawl avec get_crawl_status.

Annuler un crawl#

Annulez un crawl en cours avec cancel_crawl.

Vérifier les erreurs de crawl#

Obtenez les erreurs d’une tâche de crawl avec get_crawl_errors.

Cartographier un site web#

Découvrez les liens d’un site à l’aide de map.

Pour obtenir un résultat plus simple avec uniquement des URL, utilisez map_urls :

Recherche sur le Web#

Lancez une recherche avec des paramètres facultatifs à l’aide de search.

Pour une méthode utilitaire qui renvoie directement les documents extraits :

Scraping par lots#

Scrapez plusieurs URL en parallèle avec batch_scrape.

Agent#

Lancez un agent basé sur l’IA avec agent.

Avec un schéma JSON pour une sortie structurée :

Session interactive liée au scraping#

Utilisez l’ID d’une tâche de scraping pour exécuter ensuite du code dans le navigateur, dans le même contexte :

  • interact(...) exécute du code ou des prompts dans la session de navigateur liée au scraping.
  • stop_interaction(...) met fin à la session interactive lorsque vous avez terminé.

Configuration#

Client::new(...) et Client::new_selfhosted(...) créent un client.

OptionDescription
Client::new(api_key)Crée un client pour le service cloud de Firecrawl (https://api.firecrawl.dev)
Client::new_selfhosted(api_url, api_key)Crée un client pour une instance Firecrawl auto-hébergée

Variable d’environnement#

Définissez la variable d’environnement FIRECRAWL_API_KEY au lieu de fournir directement la clé :

Intervalles d’interrogation#

Les méthodes synchrones (crawl, batch_scrape, agent) interrogent le statut jusqu’à la fin du traitement. Vous pouvez personnaliser l’intervalle d’interrogation via la structure options :

Gestion des erreurs#

Le SDK utilise l’énumération FirecrawlError, qui implémente Error, Debug et Display. Toutes les méthodes renvoient Result<T, FirecrawlError>.

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