ClawSkills logoClawSkills

TinyFish Web Agent

使用 TinyFish Web 代理提取/抓取网站、提取数据并使用自然语言自动化浏览器操作。当您需要从特定网站提取/抓取数据时使用。

介绍

# TinyFish Web Agent

要求:`TINYFISH_API_KEY` 环境变量

## 预检(必须)

在进行任何 API 调用之前,**始终**先运行此命令以验证密钥是否可用:

```bash [ -n "$TINYFISH_API_KEY" ] && echo "TINYFISH_API_KEY is set" || echo "TINYFISH_API_KEY is NOT set" ```

如果密钥**未设置**,你**必须停止并请求用户**添加其 API 密钥。**切勿**回退到其他工具或方法——此任务需要 TinyFish。

告诉用户:

> 你需要一个 TinyFish API 密钥。在此获取:<https://agent.tinyfish.ai/api-keys> > > 然后设置它,以便代理可以使用它: > > **选项 1 — 环境变量(适用于任何地方):** > ```bash > export TINYFISH_API_KEY="your-key-here" > ``` > > **选项 2 — Claude Code 设置(仅限 Claude Code):** > 添加到 `~/.claude/settings.local.json`: > ```json > { > "env": { > "TINYFISH_API_KEY": "your-key-here" > } > } > ```

在确认密钥可用之前,请勿继续。

## 最佳实践

1. **指定 JSON 格式**:始终描述你希望返回的确切结构 2. **并行调用**:当从多个独立站点提取数据时,请进行单独的并行调用,而不是合并到一个提示词中

## 基础提取/抓取

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

```bash 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": "Extract product info as JSON: {\"name\": str, \"price\": str, \"in_stock\": bool}" }' ```

## 多项内容

提取具有显式结构的数据列表:

```bash 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": "Extract all products as JSON array: [{\"name\": str, \"price\": str, \"url\": str}]" }' ```

## 隐身模式

对于受机器人保护的网站,请在请求正文中添加 `"browser_profile": "stealth"`:

```bash 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": "Extract product data as JSON: {\"name\": str, \"price\": str, \"description\": str}", "browser_profile": "stealth" }' ```

## 代理

通过向正文添加 `"proxy_config"` 来通过特定国家/地区进行路由:

```bash 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": "Extract pricing data as 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 调用,而不是合并到一个提示词中:

**好的做法** - 并行调用: ```bash # Compare pizza prices - run these simultaneously 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": "Extract pizza prices as 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": "Extract pizza prices as JSON: [{\"name\": str, \"price\": str}]" }' ```

**不好的做法** - 单次合并调用: ```bash # Don't do this - less reliable and slower 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": "Extract prices from Pizza Hut and also go to Dominos..." }' ```

每个独立的提取任务都应作为其自己的 API 调用。这样速度更快(并行执行),也更可靠。

更多产品