メインコンテンツへスキップ

前提条件

クレートをインストール

Cargo.tomlfirecrawl を追加します:
[dependencies]
firecrawl = "2"
tokio = { version = "1", features = ["full"] }
serde_json = "1"

ウェブを検索

use firecrawl::{Client, SearchOptions};

#[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",
        SearchOptions { limit: Some(5), ..Default::default() },
    ).await?;

    if let Some(web) = results.data.web {
        for item in web {
            if let firecrawl::SearchResultOrDocument::WebResult(r) = item {
                println!("{} - {}", r.url, r.title.unwrap_or_default());
            }
        }
    }
    Ok(())
}

ページをスクレイピングする

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"
  }
}

ページをInteractする

ページをスクレイピングして scrapeId を取得し、Interact API を使ってブラウザセッションを操作します:
use firecrawl::{Client, ScrapeOptions, Format, ScrapeExecuteOptions};

let doc = client.scrape(
    "https://www.amazon.com",
    ScrapeOptions {
        formats: Some(vec![Format::Markdown]),
        ..Default::default()
    },
).await?;

let scrape_id = doc.metadata
    .as_ref()
    .and_then(|m| m.scrape_id.as_deref())
    .expect("scrapeId not found");

// ページを操作するプロンプトを送信する
let run = client.interact(
    scrape_id,
    ScrapeExecuteOptions {
        prompt: Some("Search for iPhone 16 Pro Max".to_string()),
        ..Default::default()
    },
).await?;

let run = client.interact(
    scrape_id,
    ScrapeExecuteOptions {
        prompt: Some("Click on the first result and tell me the price".to_string()),
        ..Default::default()
    },
).await?;

println!("{:?}", run.output);

// セッションを閉じる
client.stop_interaction(scrape_id).await?;

環境変数

キーを直接渡す代わりに、FIRECRAWL_API_KEY を設定してください。
export FIRECRAWL_API_KEY=fc-YOUR-API-KEY
let api_key = std::env::var("FIRECRAWL_API_KEY")?;
let client = Client::new(api_key)?;

次のステップ

Search のドキュメント

Web を検索して、ページ全体のコンテンツを取得

スクレイピング のドキュメント

フォーマット、アクション、プロキシを含む、すべてのスクレイピングのオプション

Interact のドキュメント

クリック、フォーム入力、動的コンテンツの抽出

Rust SDK リファレンス

クロール、map、バッチスクレイプ などを含む SDK リファレンス