可在你的 Elixir 应用中抓取单个页面、爬取整个站点,并映射 URL。该 SDK 在运行时通过 NimbleOptions 验证所有参数,并使用 Req 进行 HTTP 请求,因此在真正发出请求之前,你就能清楚发现拼写错误和无效选项。
每个函数都有一个 bang (!) 变体,出错时会直接抛出异常,而不是返回 {:error, ...} 元组。
安装#
在 mix.exs 的依赖项列表中添加 firecrawl,并配置你的 API 密钥:
或者在每次请求中传入 API 密钥:
使用方式#
- 前往 firecrawl.dev 获取 API 密钥
- 在应用配置中设置 API 密钥,或将其作为选项传给任意函数。
抓取 URL#
使用 scrape_and_extract_from_url 抓取单个 URL。它会以结构化数据的形式返回页面内容,包括 markdown、元数据以及你指定的其他 formats。
爬取网站#
要爬取网站,请使用 crawl_urls。它接收起始 URL 和可选参数,例如页面上限、允许的域名以及输出格式。
开始爬取#
启动一个爬取任务,并立即返回任务 ID,无需阻塞:
查看爬取状态#
使用 get_crawl_status 查看爬取任务的状态:
取消爬取任务#
使用 cancel_crawl 取消爬取任务:
为网站映射 URL 列表#
使用 map_urls 生成网站的 URL 列表:
搜索#
进行网页搜索,并可按需抓取结果:
批量抓取#
在单个批量任务中抓取多个 URL:
代理#
启动一个代理式数据提取任务:
浏览器#
启动云端浏览器会话并远程执行代码。
创建会话#
执行代码#
配置档案#
在不同会话间保存并复用浏览器状态 (cookies、localStorage 等) :
列出并关闭会话#
自托管实例#
要使用自托管的 Firecrawl 实例,请传入 base_url 选项:
错误处理#
非 bang 版本的函数会返回 {:ok, response} 或 {:error, exception}。Bang 版本在出错时会直接抛出异常。NimbleOptions 会在发送请求前验证所有参数,立即捕获拼写错误、缺少必填字段和类型错误。
所有可用函数#
| 函数 | 描述 |
|---|---|
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。

