Skip to main content

Rust

O SDK do Firecrawl para Rust é um wrapper da API do Firecrawl para ajudar você a converter sites em markdown com facilidade.
4 min read

Instalação#

O SDK oficial do Firecrawl para Rust é mantido no monorepo do Firecrawl em apps/rust-sdk.

Para instalar o SDK do Firecrawl para Rust, adicione a dependência do crates.io:

Ou instale com o Cargo:

Note
Requer Rust 1.70 ou superior.

Uso#

  1. Obtenha uma chave de API em firecrawl.dev
  2. Defina a chave de API como uma variável de ambiente chamada FIRECRAWL_API_KEY ou passe-a diretamente para Client::new(...)

Faça scraping de uma página e imprima seu markdown:

As seções abaixo abordam o rastreamento, o mapeamento, a busca e outros métodos do SDK.

Scraping de uma URL#

Para fazer scraping de uma única URL, use o método scrape.

Extração JSON#

Extraia dados JSON estruturados usando scrape_with_schema:

Ou configure a extração JSON diretamente via ScrapeOptions:

Análise de arquivos enviados#

Use parse para enviar um arquivo local (.html, .htm, .pdf, .docx, .doc, .odt, .rtf, .xlsx, .xls) como multipart/form-data para /v2/parse. O endpoint retorna um Document com os formatos solicitados.

ParseOptions omite intencionalmente campos exclusivos de scraping que /v2/parse rejeita (como actions, waitFor, location, mobile, screenshot, branding e changeTracking).

Crie um ParseFile a partir de bytes em memória ou diretamente de um caminho de arquivo:

Ou leia o arquivo do disco local e omita as opções:

ParseFile#

ConstrutorDescrição
ParseFile::from_bytes(filename, bytes)Cria a partir de um nome de arquivo e bytes na memória
ParseFile::from_path(path)Lê os bytes do disco e deriva o nome do arquivo
.with_content_type(content_type)Adiciona uma indicação de tipo MIME (por ex. text/html, application/pdf)

ParseOptions#

Campos compatíveis (todos opcionais, em camelCase na transmissão):

  • formats: Vec<ParseFormat> — qualquer um dos seguintes: 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> (ex.: configuração do parser de 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

Rastreamento de um site#

Para rastrear um site e aguardar a conclusão, use crawl.

Iniciar um rastreamento#

Inicie um job sem aguardar usando start_crawl.

Verificando o status do rastreamento#

Verifique o andamento do rastreamento com get_crawl_status.

Cancelar um rastreamento#

Cancele um rastreamento em execução com cancel_crawl.

Verificando erros de rastreamento#

Recupere os erros de um job de rastreamento com get_crawl_errors.

Mapear um site#

Encontre links em um site com map.

Para um resultado mais simples, com apenas URLs, use map_urls:

Busca na Web#

Faça uma busca com configurações opcionais usando search.

Para um método auxiliar que retorna documentos extraídos diretamente:

Scraping em lote#

Faça scraping de várias URLs em paralelo com batch_scrape.

Agente#

Execute um agente com IA usando agent.

Com um schema JSON para resultado estruturado:

Sessão interativa vinculada ao scraping#

Use um ID do job de scraping para executar código adicional no navegador no mesmo contexto:

  • interact(...) executa código ou prompts na sessão do navegador vinculada ao scraping.
  • stop_interaction(...) encerra a sessão interativa quando terminar.

Configuração#

Client::new(...) e Client::new_selfhosted(...) criam o cliente.

OpçãoDescrição
Client::new(api_key)Cria um cliente para o serviço em nuvem do Firecrawl (https://api.firecrawl.dev)
Client::new_selfhosted(api_url, api_key)Cria um cliente para uma instância auto-hospedada do Firecrawl

Variável de ambiente#

Defina a variável de ambiente FIRECRAWL_API_KEY em vez de informar a chave diretamente:

Intervalos de consulta#

Os métodos síncronos (crawl, batch_scrape, agent) consultam o status até a conclusão. Você pode personalizar o intervalo de consulta por meio da struct options:

Tratamento de erros#

O SDK usa o enum FirecrawlError, que implementa Error, Debug e Display. Todos os métodos retornam Result<T, FirecrawlError>.

Você é um agente de IA que precisa de uma chave de API do Firecrawl? Veja firecrawl.dev/agent-onboarding/SKILL.md para instruções de onboarding automatizado.