Skip to main content

安装

要安装 Firecrawl 的 Python SDK,可以使用 pip:
Python

使用

  1. firecrawl.dev 获取 API key
  2. 将该 API key 设置为名为 FIRECRAWL_API_KEY 的环境变量,或在实例化 Firecrawl 类时作为参数传入。
以下是使用 SDK 的示例:
Python

抓取单个 URL

要抓取单个 URL,请使用 scrape 方法。它将该 URL 作为参数并返回抓取到的文档。
Python

爬取网站

要爬取网站,请使用 crawl 方法。它接收起始 URL 和可选的 options 作为参数。通过 options,你可以为爬取任务指定其他设置,例如爬取的最大页面数、允许的域名,以及输出 formats。有关自动/手动分页与限制,请参见 Pagination
Python

仅站点地图抓取

使用 sitemap="only" 只抓取站点地图中的 URL(起始 URL 始终会被包含,并且不会进行 HTML 链接发现)。
Python

开始 Crawl

想要非阻塞方式?请查看下方的异步类部分。
使用 start_crawl 启动任务,无需等待。它会返回一个用于检查状态的任务 ID。需要直到完成才返回的阻塞式等待器时,请使用 crawl。分页行为与限制见分页
Python

检查爬取状态

要查看爬取任务的状态,请使用 get_crawl_status 方法。该方法接收任务 ID 作为参数,并返回该爬取任务的当前状态。
Python

取消爬取

要取消一个爬取任务,使用 cancel_crawl 方法。传入由 start_crawl 返回的任务 ID 作为参数,该方法会返回取消结果。
Python

网站映射

使用 map 生成网站的 URL 列表。你可以通过选项自定义映射过程,例如排除子域或利用 sitemap。
Python

使用 WebSockets 爬取网站

要通过 WebSockets 爬取网站,先用 start_crawl 启动任务,并使用 watcher 辅助工具订阅。调用 start() 之前,使用任务 ID 创建一个 watcher,并附加处理器(例如:page、completed、failed)。
Python
当有更多数据可用时,Firecrawl 的 crawl 和 batch scrape 端点会返回一个 next URL。Python SDK 默认会自动分页并汇总所有文档;此时 nextNone。你可以禁用自动分页或设置限制来控制分页行为。

PaginationConfig

在调用 get_crawl_statusget_batch_scrape_status 时,使用 PaginationConfig 来控制分页行为:
Python

手动分页辅助方法

auto_paginate=False 时,如果还有更多数据可用,响应中会包含一个 next URL。使用以下辅助方法来获取后续页面:
  • get_crawl_status_page(next_url) - 使用前一次响应中的不透明 next URL 获取爬取结果的下一页。
  • get_batch_scrape_status_page(next_url) - 使用前一次响应中的不透明 next URL 获取批量抓取结果的下一页。
这些方法返回的响应类型与最初的状态查询调用相同,如果还有更多页面,将包含新的 next URL。

爬取

使用 waiter 方法 crawl 可获得最简便的体验,或者启动一个作业并手动翻页。
简单抓取(自动分页,默认)
手动抓取并控制分页
先启动一个任务,然后将 auto_paginate 设为 False,一次获取一页。使用 get_crawl_status_page 获取后续页面:
Python
手动抓取并设定限制(自动分页 + 提前停止)
保持自动分页开启,但可通过 max_pagesmax_resultsmax_wait_time 提前停止:
Python

批量抓取

使用 waiter 方法 batch_scrape,或启动任务后手动分页处理。
简单批量爬取(自动分页,默认)
手动批量抓取并控制分页
先启动一个任务,然后将 auto_paginate=False,每次只获取一页。使用 get_batch_scrape_status_page 获取后续页面:
Python
受限的手动批量抓取(自动分页 + 提前停止)
保持自动分页开启,但可通过 max_pagesmax_resultsmax_wait_time 提前停止:
Python

错误处理

SDK 会处理 Firecrawl API 返回的错误并抛出相应异常。如果在请求过程中发生错误,将抛出包含详细错误信息的异常。

异步类

进行异步操作时,请使用 AsyncFirecrawl 类。其方法与 Firecrawl 一致,但不会阻塞主线程。
Python

浏览器

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

创建会话

Python

运行代码

Python
改用 JavaScript,而不是 Python:
Python

配置文件

跨会话保存并复用浏览器状态(cookies、localStorage 等):
Python

通过 CDP 连接

要获得对 Playwright 的完全控制,请使用 CDP URL 直接连接:
Python

查看和关闭会话

Python