firecrawl-build-interact 是做什么的?
将Firecrawl /interact 集成到产品代码中,用于处理动态页面和抓取后的浏览器操作。当功能需要点击、表单填写、分页、身份验证感知流程或其他普通/scrape无法完成的多步交互时使用。
概述
该技能指导您如何使用Firecrawl的/interact端点来编排浏览器操作。它允许您发送一系列动作(如点击按钮、输入文本、等待元素等)到Firecrawl,并获取交互后的页面内容。这对于处理单页应用(SPA)、无限滚动页面、登录后的后台页面或任何需要用户交互的动态内容至关重要。
核心功能
- 多步交互:支持链式动作,包括点击、表单填写、下拉选择、悬停、滚动等。
- 身份验证感知(Authentication-aware):可以在交互前设置cookie或header,模拟登录状态。
- 截图与DOM提取:每次交互后可获取页面截图或完整DOM,用于验证或数据提取。
- 可配置重试与超时:对不稳定页面提供重试机制和自定义超时。
使用方法
示例API调用(Python)
import requests
api_url = "https://api.firecrawl.dev/v1/interact"
headers = {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"url": "https://example.com/dynamic-page",
"actions": [
{"type": "click", "selector": "#load-more-btn"},
{"type": "wait", "timeout": 2000},
{"type": "click", "selector": ".next-page"}
],
"extract": "body" # 可选:提取最终DOM
}
response = requests.post(api_url, json=payload, headers=headers)
print(response.json())
支持的常用动作类型
| 动作类型 | 参数 | 说明 |
|---|---|---|
click | selector | 点击指定CSS选择器的元素 |
type | selector, text | 在输入框中键入文本 |
select | selector, value | 选择下拉菜单项 |
hover | selector | 悬停在元素上 |
scroll | direction, amount | 滚动页面(方向如down, up) |
wait | timeout | 等待指定毫秒数 |
screenshot | 无 | 截取当前页面截图并返回URL |
最佳实践
- 最小化动作链:只包含必要的动作,减少加载时间和API消耗。
- 使用稳定选择器:优先使用ID或data属性选择器,避免依赖动态生成的class。
- 处理认证:如需登录,先使用Firecrawl的
/auth端点或通过headers传递token。 - 错误处理:为每个动作设置超时和重试逻辑,尤其对于慢速页面。
- 调试:在开发阶段启用
screenshot动作以验证交互结果。
注意事项
- 确保API密钥安全,不要硬编码在代码中(使用环境变量
FIRECRAWL_API_KEY)。 - 对于无限滚动页面,使用
scroll动作配合wait来触发动态加载。 - 如果页面使用了Shadow DOM,确保选择器能穿透(如使用
>>>或deep())。
与其他工具集成
该技能可轻松嵌入到Claude Code、Cursor、Codex等AI agent的规则文件中,用于自动化数据采集任务。例如,在Claude Code中,您可以创建一个包含该技能的CLAUD.md文件,并引用此技能描述。
注意:使用前请阅读Firecrawl API文档获取最新版本的信息。