OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  tinyfish-web-agent:使用 TinyFish/Mino 网页智能体进行数据提取与抓取

tinyfish-web-agent:使用 TinyFish/Mino 网页智能体进行数据提取与抓取

 
  malware ·  2026-02-16 18:39:21 · 3 次点击  · 0 条评论  

名称: tinyfish
描述: 使用 TinyFish 网络智能体,通过自然语言抓取网站、提取数据并自动化浏览器操作。适用于需要从网站提取/抓取数据、处理反爬虫网站或自动化网页任务的场景。
主页: https://agent.tinyfish.ai
requires:
env:
- TINYFISH_API_KEY


TinyFish 网络智能体

必需项:环境变量 TINYFISH_API_KEY

前置检查(必需)

在发起任何 API 调用前,务必先运行以下命令,验证 API 密钥是否可用:

[ -n "$TINYFISH_API_KEY" ] && echo "TINYFISH_API_KEY 已设置" || echo "TINYFISH_API_KEY 未设置"

如果密钥未设置,你必须停止并提示用户添加其 API 密钥。不要回退到其他工具或方法——该任务必须使用 TinyFish。

告知用户:

你需要一个 TinyFish API 密钥。请前往以下地址获取:https://agent.tinyfish.ai/api-keys

然后进行设置,以便智能体使用:

选项 1 — 环境变量(通用):
bash export TINYFISH_API_KEY="你的密钥"

选项 2 — Claude Code 设置(仅限 Claude Code):
添加到 ~/.claude/settings.local.json
json { "env": { "TINYFISH_API_KEY": "你的密钥" } }

在确认密钥可用之前,不要继续执行。

最佳实践

  1. 明确指定 JSON 格式:始终描述你希望返回的确切数据结构。
  2. 并行调用:当从多个独立的网站提取数据时,应发起独立的并行调用,而非合并到一个提示中。

基础数据提取/抓取

从页面提取数据。请指定你需要的 JSON 结构:

curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com",
    "goal": "提取产品信息为 JSON 格式:{\"name\": str, \"price\": str, \"in_stock\": bool}"
  }'

提取多项数据

提取数据列表,并明确指定结构:

curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/products",
    "goal": "提取所有产品为 JSON 数组:[{\"name\": str, \"price\": str, \"url\": str}]"
  }'

隐身模式

对于有反爬虫保护的网站,在请求体中添加 "browser_profile": "stealth"

curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://protected-site.com",
    "goal": "提取产品数据为 JSON 格式:{\"name\": str, \"price\": str, \"description\": str}",
    "browser_profile": "stealth"
  }'

代理

通过在请求体中添加 "proxy_config",将请求路由到特定国家:

curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://geo-restricted-site.com",
    "goal": "提取定价数据为 JSON 格式:{\"item\": str, \"price\": str, \"currency\": str}",
    "browser_profile": "stealth",
    "proxy_config": {"enabled": true, "country_code": "US"}
  }'

输出

SSE 流返回 data: {...} 格式的数据行。最终结果位于 type == "COMPLETE"status == "COMPLETED" 的事件中——提取的数据在 resultJson 字段中。Claude 会直接读取原始的 SSE 输出,无需在脚本端进行解析。

并行提取

当从多个独立数据源提取数据时,应发起独立的并行 curl 调用,而不是合并到一个提示中:

推荐做法 - 并行调用:

# 比较披萨价格 - 同时运行以下命令
curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://pizzahut.com",
    "goal": "提取披萨价格为 JSON 数组:[{\"name\": str, \"price\": str}]"
  }'

curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://dominos.com",
    "goal": "提取披萨价格为 JSON 数组:[{\"name\": str, \"price\": str}]"
  }'

不推荐做法 - 单一合并调用:

# 不要这样做 - 可靠性更低且速度更慢
curl -N -s -X POST "https://agent.tinyfish.ai/v1/automation/run-sse" \
  -H "X-API-Key: $TINYFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://pizzahut.com",
    "goal": "从 Pizza Hut 提取价格,同时再去 Dominos 网站..."
  }'

每个独立的数据提取任务都应是一个独立的 API 调用。这种方式更快(并行执行)且更可靠。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor