Pular para o conteúdo principal

Pré-requisitos

Instale o crate

Adicione firecrawl ao seu Cargo.toml:
[dependencies]
firecrawl = "1"
tokio = { version = "1", features = ["full"] }
serde_json = "1"
reqwest = { version = "0.12", features = ["json"] }

Faça uma busca na web

use firecrawl::v2::Client;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = Client::new("fc-YOUR-API-KEY")?;
    let results = client.search("firecrawl web scraping", None).await?;

    for result in &results {
        println!("{} - {}", result.title.as_deref().unwrap_or(""), result.url.as_deref().unwrap_or(""));
    }
    Ok(())
}

Faça scraping de uma página

let doc = client.scrape("https://example.com", None).await?;
println!("{}", doc.markdown.unwrap_or_default());
{
  "markdown": "# Example Domain\n\nThis domain is for use in illustrative examples...",
  "metadata": {
    "title": "Example Domain",
    "sourceURL": "https://example.com"
  }
}

Interaja com uma página

A API de interação usa comandos baseados em prompt via HTTP. Faça o scraping de uma página para obter um scrapeId e, em seguida, envie prompts para controlar a sessão do navegador:
use reqwest::Client as HttpClient;
use serde_json::json;

let api_key = "fc-YOUR-API-KEY";
let http = HttpClient::new();

// 1. Fazer scraping para abrir uma sessão do navegador
let scrape_res: serde_json::Value = http
    .post("https://api.firecrawl.dev/v2/scrape")
    .bearer_auth(api_key)
    .json(&json!({ "url": "https://www.amazon.com", "formats": ["markdown"] }))
    .send().await?
    .json().await?;

let scrape_id = scrape_res["data"]["metadata"]["scrapeId"]
    .as_str().unwrap();

// 2. Enviar prompts para interagir
http.post(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .json(&json!({ "prompt": "Search for iPhone 16 Pro Max" }))
    .send().await?;

let interact_res: serde_json::Value = http
    .post(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .json(&json!({ "prompt": "Click on the first result and tell me the price" }))
    .send().await?
    .json().await?;

println!("{}", interact_res);

// 3. Encerrar a sessão
http.delete(format!("https://api.firecrawl.dev/v2/scrape/{scrape_id}/interact"))
    .bearer_auth(api_key)
    .send().await?;

Variável de ambiente

Defina FIRECRAWL_API_KEY em vez de passar a chave diretamente:
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
O crate firecrawl também oferece suporte à API v1 por meio de FirecrawlApp. Consulte a documentação do SDK Rust para ver a API completa.

Próximos passos

Documentação de busca

Faça uma busca na web e obtenha o conteúdo completo da página

Documentação de scraping

Todas as opções de scraping, incluindo formatos, ações e proxies

Documentação de interação

Clique, preencha formulários e extraia conteúdo dinâmico

Referência do SDK Rust

Referência completa do SDK com crawl, map e outros recursos