Skip to main content

Elixir

Firecrawl Elixir SDK 是 Firecrawl API v2 的自动生成客户端,基于 Req 和 NimbleOptions 构建。
2 min read

可在你的 Elixir 应用中抓取单个页面、爬取整个站点,并映射 URL。该 SDK 在运行时通过 NimbleOptions 验证所有参数,并使用 Req 进行 HTTP 请求,因此在真正发出请求之前,你就能清楚发现拼写错误和无效选项。

每个函数都有一个 bang (!) 变体,出错时会直接抛出异常,而不是返回 {:error, ...} 元组。

安装#

mix.exs 的依赖项列表中添加 firecrawl,并配置你的 API 密钥:

Elixir

或者在每次请求中传入 API 密钥:

Elixir

使用方式#

  1. 前往 firecrawl.dev 获取 API 密钥
  2. 在应用配置中设置 API 密钥,或将其作为选项传给任意函数。
Elixir

抓取 URL#

使用 scrape_and_extract_from_url 抓取单个 URL。它会以结构化数据的形式返回页面内容,包括 markdown、元数据以及你指定的其他 formats。

Elixir

爬取网站#

要爬取网站,请使用 crawl_urls。它接收起始 URL 和可选参数,例如页面上限、允许的域名以及输出格式。

Elixir

开始爬取#

启动一个爬取任务,并立即返回任务 ID,无需阻塞:

Elixir

查看爬取状态#

使用 get_crawl_status 查看爬取任务的状态:

Elixir

取消爬取任务#

使用 cancel_crawl 取消爬取任务:

Elixir

为网站映射 URL 列表#

使用 map_urls 生成网站的 URL 列表:

Elixir

进行网页搜索,并可按需抓取结果:

Elixir

批量抓取#

在单个批量任务中抓取多个 URL:

Elixir

代理#

启动一个代理式数据提取任务:

Elixir

浏览器#

启动云端浏览器会话并远程执行代码。

创建会话#

Elixir

执行代码#

Elixir

配置档案#

在不同会话间保存并复用浏览器状态 (cookies、localStorage 等) :

Elixir

列出并关闭会话#

Elixir

自托管实例#

要使用自托管的 Firecrawl 实例,请传入 base_url 选项:

Elixir

错误处理#

非 bang 版本的函数会返回 {:ok, response}{:error, exception}。Bang 版本在出错时会直接抛出异常。NimbleOptions 会在发送请求前验证所有参数,立即捕获拼写错误、缺少必填字段和类型错误。

Elixir

所有可用函数#

函数描述
scrape_and_extract_from_url抓取单个 URL
scrape_and_extract_from_urls批量抓取多个 URL
crawl_urls爬取网站
get_crawl_status检查爬取任务状态
get_crawl_errors获取爬取任务错误
get_active_crawls列出正在运行的爬取任务
cancel_crawl取消爬取任务
map_urls映射网站中的 URL
search_and_scrape搜索并抓取结果
start_agent启动代理提取任务
get_agent_status检查代理任务状态
cancel_agent取消代理任务
create_browser_session创建浏览器会话
execute_browser_code在浏览器会话中执行代码
list_browser_sessions列出浏览器会话
delete_browser_session删除浏览器会话
get_batch_scrape_status检查批量抓取状态
get_batch_scrape_errors获取批量抓取错误
cancel_batch_scrape取消批量抓取
get_credit_usage获取剩余额度

上述每个函数都有一个带 bang (!) 的变体 (例如 scrape_and_extract_from_url!) ,它会直接抛出错误,而不是返回错误元组。

如需完整的 API 文档,请参见 hexdocs.pm/firecrawl