Skip to main content

Rust

Firecrawl Rust SDK 是对 Firecrawl API 的封装,可帮助你轻松将网站转换为 Markdown。
2 min read

安装#

官方 Rust SDK 维护在 Firecrawl 的 monorepo 中,位于 apps/rust-sdk

要安装 Firecrawl Rust SDK,请从 crates.io 添加此依赖:

或通过 Cargo 安装:

Note
需要 Rust 1.70 或更高版本。

使用方式#

  1. firecrawl.dev 获取 API 密钥
  2. 将 API 密钥设置为名为 FIRECRAWL_API_KEY 的环境变量,或直接传给 Client::new(...)

抓取网页并打印其 markdown:

以下各节介绍了爬取、映射、搜索及其他 SDK 方法。

抓取 URL#

要抓取单个 URL,请使用 scrape 方法。

JSON 提取#

使用 scrape_with_schema 提取结构化 JSON:

也可以直接通过 ScrapeOptions 配置 JSON 提取:

解析上传的文件#

使用 parse 将本地文件 (.html.htm.pdf.docx.doc.odt.rtf.xlsx.xls) 以 multipart form data 的形式上传到 /v2/parse。该 endpoint 会返回一个包含所请求 formats 的 Document

ParseOptions 刻意省略了仅适用于抓取、且会被 /v2/parse 拒绝的字段 (例如 actionswaitForlocationmobilescreenshotbrandingchangeTracking) 。

可以通过内存中的字节数据或直接通过路径构建 ParseFile

或者直接从磁盘读取文件,不传入选项:

ParseFile#

构造函数描述
ParseFile::from_bytes(filename, bytes)通过文件名和内存中的字节数据构建
ParseFile::from_path(path)从磁盘读取字节数据,并从路径中提取文件名
.with_content_type(content_type)附加 MIME 类型提示 (例如 text/htmlapplication/pdf)

ParseOptions#

支持的字段 (均为可选,请求传输时使用 camelCase) :

  • formats: Vec<ParseFormat> — 可为以下任意值:MarkdownHtmlRawHtmlLinksImagesSummaryJsonAttributes
  • only_main_content: bool
  • include_tags: Vec<String> / exclude_tags: Vec<String>
  • headers: HashMap<String, String>
  • timeout: u32 (毫秒)
  • parsers: Vec<ParserConfig> (例如 PDF 解析器配置)
  • skip_tls_verification: bool
  • remove_base64_images: bool
  • fast_mode: bool
  • block_ads: bool
  • proxy: ParseProxyType (BasicAuto)
  • json_options: JsonOptions
  • attribute_selectors: Vec<AttributeSelector>
  • zero_data_retention: bool
  • integration: String, origin: String, use_mock: String

爬取网站#

如需爬取网站并等待完成,请使用 crawl

开始爬取#

使用 start_crawl 启动任务,无需等待。

查看爬取状态#

使用 get_crawl_status 查看爬取进度。

取消爬取#

使用 cancel_crawl 取消正在进行的爬取。

检查爬取错误#

使用 get_crawl_errors 获取爬取任务中的错误。

网站映射#

使用 map 发现网站中的链接。

若只需返回 URL 的简化结果,请使用 map_urls

搜索网页#

使用 search 并结合可选设置进行搜索。

如需使用可直接返回抓取到的文档的便捷方法:

批量抓取#

通过 batch_scrape 并行抓取多个 URL。

代理#

使用 agent 运行 AI 代理。

使用 JSON schema 实现结构化输出:

与抓取任务绑定的交互式会话#

使用抓取任务 ID,可在同一上下文中运行后续浏览器代码:

  • interact(...) 会在与抓取任务绑定的浏览器会话中运行代码或 prompt。
  • stop_interaction(...) 会在你完成后停止交互式会话。

配置#

Client::new(...)Client::new_selfhosted(...) 用于创建客户端。

选项描述
Client::new(api_key)为 Firecrawl 云服务 (https://api.firecrawl.dev) 创建客户端
Client::new_selfhosted(api_url, api_key)为自托管 Firecrawl 实例创建客户端

环境变量#

请设置 FIRECRAWL_API_KEY 环境变量,而不要直接传入密钥:

轮询间隔#

同步方法 (crawlbatch_scrapeagent) 会轮询直到完成。你可以通过 options 结构体自定义轮询间隔:

错误处理#

SDK 使用 FirecrawlError 枚举,该枚举实现了 ErrorDebugDisplay 接口。所有方法都返回 Result<T, FirecrawlError>

如果你是需要 Firecrawl API 密钥的 AI 代理,请参阅 firecrawl.dev/agent-onboarding/SKILL.md 获取自动化接入说明。