tinyfish について
tinyfishは、TinyFish APIを使ってウェブデータを抽出するClaude向けスキルです。APIキーが必要で、JSON形式の指定、ステルスブラウザモード、プロキシ設定に対応しています。
主な機能
- 01API経由でウェブデータを抽出
- 02指定した構造のJSONを要求
- 03ステルスブラウザモードに対応
- 04プロキシの国を設定
- 05個別の抽出を並列実行
活用シーン
- 01ページから商品名や価格を抽出
- 02ウェブページの商品一覧を整理
- 03複数サイトの価格を比較
- 04保護対象または地域制限のあるサイトから抽出
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ tinyfish-io/ skills --skill tinyfishインストール後、Claude Code で/tinyfishを入力して読み込まれたか確認します。
同梱ファイルscripts/extract.sh
詳細
TinyFish Web Agent
必要なもの:環境変数 TINYFISH_API_KEY
事前確認(必須)
API を呼び出す前に、キーが利用可能であることを確認するため、必ず最初にこれを実行してください。
[ -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 — 環境変数(どこでも動作します):
export TINYFISH_API_KEY="your-key-here"オプション 2 — Claude Code の設定(Claude Code のみ):
~/.claude/settings.local.jsonに追加してください。{ "env": { "TINYFISH_API_KEY": "your-key-here" } }
キーが利用可能であることを確認するまで、処理を進めてはいけません。
ベストプラクティス
- JSON 形式を指定する:返してほしい正確な構造を必ず説明してください
- 並列呼び出し:複数の独立したサイトから抽出する場合は、1 つのプロンプトにまとめず、個別に並列呼び出しを行ってください
基本的な抽出/スクレイピング
ページからデータを抽出します。必要な 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": "Extract product info as 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": "Extract all products as JSON array: [{\"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": "Extract product data as 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": "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 出力を直接読み取るため、スクリプト側で解析する必要はありません。
並列抽出
複数の独立したソースから抽出する場合は、1 つのプロンプトにまとめず、curl 呼び出しを個別に並列実行してください。
良い例 — 並列呼び出し:
# 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}]"
}'
悪い例 — 1 回にまとめた呼び出し:
# 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 を呼び出してください。並列実行により高速になり、信頼性も高まります。