Claude Platform Docs
  • Messages
  • Managed Agents
  • 管理

Search...
⌘K
第一步
Claude 簡介快速入門
使用 Claude 進行建構
功能概覽使用 Messages API停止原因與備援拒絕與備援備援額度
模型能力
擴展思考自適應思考Effort任務預算(測試版)快速模式(研究預覽)結構化輸出引用串流 Messages批次處理搜尋結果串流拒絕多語言支援嵌入
工具
概覽工具使用的運作方式教學:建構使用工具的代理定義工具處理工具呼叫平行工具使用Tool Runner (SDK)嚴格工具使用工具使用與提示快取伺服器工具疑難排解網頁搜尋工具網頁擷取工具程式碼執行工具顧問工具記憶工具Bash 工具電腦使用工具文字編輯器工具
工具基礎架構
工具參考管理工具上下文工具組合工具搜尋程式化工具呼叫細粒度工具串流
上下文管理
上下文視窗壓縮上下文編輯提示快取對話中系統訊息建構協調模式快取診斷(測試版)Token 計數
處理檔案
Files APIPDF 支援圖片與視覺
技能
概覽快速入門最佳實務企業技能API 中的技能
MCP
遠端 MCP 伺服器MCP 連接器
雲端平台上的 Claude
Amazon BedrockAmazon Bedrock(舊版)AWS 上的 Claude PlatformMicrosoft FoundryVertex AI

Log in
網頁擷取工具
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Claude Platform Docs

Solutions

  • AI agents
  • Code modernization
  • Coding
  • Customer support
  • Education
  • Financial services
  • Government
  • Life sciences

Partners

  • Claude on AWS
  • Claude on Google Cloud

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Company

  • Anthropic
  • Careers
  • Economic Futures
  • Research
  • News
  • Responsible Scaling Policy
  • Security and compliance
  • Transparency

Learn

  • Blog
  • Courses
  • Use cases
  • Connectors
  • Customer stories
  • Engineering at Anthropic
  • Events
  • Powered by Claude
  • Service partners
  • Startups program

Help and security

  • Availability
  • Status
  • Support
  • Discord

Terms and policies

  • Privacy policy
  • Responsible disclosure policy
  • Terms of service: Commercial
  • Terms of service: Consumer
  • Usage policy
Messages/工具

網頁擷取工具

從特定 URL 擷取並讀取內容,以即時網頁內容擴充 Claude 的上下文。

網頁擷取工具允許 Claude 從指定的網頁和 PDF 文件中擷取完整內容。

最新的網頁擷取工具版本(web_fetch_20260318)支援搭配 Claude Fable 5、Claude Opus 4.8、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6 和 Claude Sonnet 4.6 使用的動態過濾功能。Claude 可以編寫並執行程式碼,在擷取的內容進入「context window」(上下文視窗)之前進行過濾,僅保留相關資訊並捨棄其餘部分。這可在維持回應品質的同時減少 token 消耗。web_fetch_20260318 也新增了用於代理式工作流程的回應包含控制。先前的版本(web_fetch_20260309 用於動態過濾和快取繞過、web_fetch_20260209 僅用於動態過濾、web_fetch_20250910 用於基本擷取)仍然可用。



對於 Claude Mythos Preview,網頁擷取可在 Claude API 和 Microsoft Foundry 上使用。目前在 Amazon Bedrock 或 Vertex AI 上的 Mythos Preview 尚不支援此功能。



請使用意見回饋表單提供關於模型回應品質、API 本身或文件品質的意見回饋。

關於零資料保留(Zero Data Retention)資格和 allowed_callers 解決方法,請參閱伺服器工具。



在 Claude 同時處理不受信任的輸入與敏感資料的環境中啟用網頁擷取工具,會帶來資料外洩風險。請僅在受信任的環境中或處理非敏感資料時使用此工具。

為了將外洩風險降至最低,Claude 不被允許動態建構 URL。Claude 只能擷取使用者明確提供的 URL,或來自先前網頁搜尋或網頁擷取結果的 URL。然而,使用此工具時仍存在應審慎考量的殘餘風險。

如果您擔心資料外洩,請考慮:

  • 完全停用網頁擷取工具
  • 使用 max_uses 參數限制請求次數
  • 使用 allowed_domains 參數限制為已知的安全網域

關於模型支援,請參閱工具參考。

網頁擷取的運作方式

當您在 API 請求中加入網頁擷取工具時:

  1. Claude 會根據提示和可用的 URL 決定何時擷取內容。
  2. API 從指定的 URL 擷取完整的文字內容。
  3. 對於 PDF,會自動執行文字提取。
  4. Claude 分析擷取的內容,並提供帶有選擇性引用的回應。


網頁擷取工具目前不支援使用 JavaScript 動態渲染的網站。

Claude 何時進行擷取

當請求指向特定頁面或文件時,Claude 會進行擷取:

  • 對話中(或先前的工具結果中)提供了 URL
  • 使用者指名特定資源(特定文章、README、定價頁面或文件章節)但未提供 URL,且同時啟用了網頁搜尋工具,讓 Claude 可以先找到該資源(請參閱結合搜尋與擷取)

對於未參照特定頁面的一般知識或開放式問題,Claude 不會進行擷取。「摘要這篇文章:<url>」會觸發擷取;「REST API 設計的最佳實務是什麼?」則會直接回答。

動態過濾

擷取完整的網頁和 PDF 可能會快速消耗 token,尤其是當只需要從大型文件中取得特定資訊時。使用 web_fetch_20260209 或更新版本時,Claude 可以編寫並執行程式碼,在將擷取的內容載入上下文之前進行過濾。

此動態過濾功能特別適用於:

  • 從長篇文件中提取特定章節
  • 處理網頁中的結構化資料
  • 從 PDF 中過濾相關資訊
  • 處理大型文件時降低 token 成本


動態過濾需要啟用程式碼執行工具。網頁擷取工具(無論是否啟用動態過濾)可在 Claude API、AWS 上的 Claude Platform 和 Microsoft Foundry 上使用。目前在 Amazon Bedrock 或 Vertex AI 上尚不支援。

若要啟用動態過濾,請使用 web_fetch_20260209 或任何更新版本。以下範例使用 web_fetch_20260209:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Fetch the content at https://example.com/research-paper and extract the key findings.",
        }
    ],
    tools=[{"type": "web_fetch_20260209", "name": "web_fetch"}],
)
print(response)

如何使用網頁擷取

在您的 API 請求中提供網頁擷取工具:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": "Please analyze the content at https://example.com/article",
        }
    ],
    tools=[{"type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5}],
)
print(response)

工具定義

網頁擷取工具支援以下參數:

JSON
{
  "type": "web_fetch_20250910",
  "name": "web_fetch",

  // Optional: Limit the number of fetches per request
  "max_uses": 10,

  // Optional: Only fetch from these domains
  "allowed_domains": ["example.com", "docs.example.com"],

  // Optional: Never fetch from these domains
  "blocked_domains": ["private.example.com"],

  // Optional: Enable citations for fetched content
  "citations": {
    "enabled": true
  },

  // Optional: Maximum content length in tokens
  "max_content_tokens": 100000
}

最大使用次數

max_uses 參數限制執行網頁擷取的次數。如果 Claude 嘗試的擷取次數超過允許值,web_fetch_tool_result 會是一個帶有 max_uses_exceeded 錯誤代碼的錯誤。目前沒有預設限制。

網域過濾

關於使用 allowed_domains 和 blocked_domains 進行網域過濾,請參閱伺服器工具。

內容限制

max_content_tokens 參數限制包含在上下文中的內容量。如果擷取的內容超過此限制,工具會將其截斷。這有助於在擷取大型文件時控制 token 使用量。



max_content_tokens 參數限制為近似值。實際使用的輸入 token 數量可能會有少量差異。

快取繞過



需要 web_fetch_20260309 或更新版本(包括 web_fetch_20260318)。

use_cache 參數控制是否可以傳回快取的內容。設定 "use_cache": false 以繞過快取並擷取最新內容;預設值為 true。僅在使用者明確要求最新內容或擷取快速變化的來源時才停用快取,因為繞過快取會增加延遲。

回應包含



需要 web_fetch_20260318 或更新版本。

response_inclusion 參數控制當擷取結果在同一回合中被已完成的程式碼執行呼叫消耗時,擷取結果區塊在 API 回應中的顯示方式。設定 "response_inclusion": "excluded" 可從回應中完全移除那些巢狀的 server_tool_use 和結果區塊配對,為不需要將原始頁面內容回傳給用戶端的代理式工作流程降低輸出 token 成本。預設值為 "full"。來自直接呼叫的結果,或來自在完成前暫停的程式碼執行呼叫的結果,一律會完整傳回,以便在下一回合中送回。

{
  "tools": [
    {
      "type": "web_fetch_20260318",
      "name": "web_fetch",
      "response_inclusion": "excluded"
    }
  ]
}

引用

與網頁搜尋一律啟用引用不同,網頁擷取的引用是選擇性的。設定 "citations": {"enabled": true} 以啟用 Claude 引用擷取文件中的特定段落。



當直接向終端使用者顯示 API 輸出時,必須包含對原始來源的引用。如果您對 API 輸出進行修改,包括在向終端使用者顯示之前重新處理和/或與您自己的素材結合,請根據與您法務團隊的諮詢結果適當地顯示引用。

回應

以下是回應結構範例:

Output
{
  "role": "assistant",
  "content": [
    // 1. Claude's decision to fetch
    {
      "type": "text",
      "text": "I'll fetch the content from the article to analyze it."
    },
    // 2. The fetch request
    {
      "type": "server_tool_use",
      "id": "srvtoolu_01234567890abcdef",
      "name": "web_fetch",
      "input": {
        "url": "https://example.com/article"
      }
    },
    // 3. Fetch results
    {
      "type": "web_fetch_tool_result",
      "tool_use_id": "srvtoolu_01234567890abcdef",
      "content": {
        "type": "web_fetch_result",
        "url": "https://example.com/article",
        "content": {
          "type": "document",
          "source": {
            "type": "text",
            "media_type": "text/plain",
            "data": "Full text content of the article..."
          },
          "title": "Article Title",
          "citations": { "enabled": true }
        },
        "retrieved_at": "2025-08-25T10:30:00Z"
      }
    },
    // 4. Claude's analysis with citations (if enabled)
    {
      "text": "Based on the article, ",
      "type": "text"
    },
    {
      "text": "the main argument presented is that artificial intelligence will transform healthcare",
      "type": "text",
      "citations": [
        {
          "type": "char_location",
          "document_index": 0,
          "document_title": "Article Title",
          "start_char_index": 1234,
          "end_char_index": 1456,
          "cited_text": "Artificial intelligence is poised to revolutionize healthcare delivery..."
        }
      ]
    }
  ],
  "id": "msg_a930390d3a",
  "usage": {
    "input_tokens": 25039,
    "output_tokens": 931,
    "server_tool_use": {
      "web_fetch_requests": 1
    }
  },
  "stop_reason": "end_turn"
}

擷取結果

擷取結果包含:

  • url:被擷取的 URL
  • content:包含擷取內容的文件區塊
  • retrieved_at:擷取內容時的時間戳記


網頁擷取工具會快取結果以提升效能並減少重複請求。傳回的內容可能不一定反映該 URL 上可用的最新版本。快取行為會自動管理,並可能隨時間變更以針對不同的內容類型和使用模式進行最佳化。

對於 PDF 文件,內容會以 base64 編碼資料的形式傳回:

Output
{
  "type": "web_fetch_tool_result",
  "tool_use_id": "srvtoolu_02",
  "content": {
    "type": "web_fetch_result",
    "url": "https://example.com/paper.pdf",
    "content": {
      "type": "document",
      "source": {
        "type": "base64",
        "media_type": "application/pdf",
        "data": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
      },
      "citations": { "enabled": true }
    },
    "retrieved_at": "2025-08-25T10:30:02Z"
  }
}

錯誤

當網頁擷取工具遇到錯誤時,Claude API 會傳回 200(成功)回應,並在回應主體中表示該錯誤:

Output
{
  "type": "web_fetch_tool_result",
  "tool_use_id": "srvtoolu_a93jad",
  "content": {
    "type": "web_fetch_tool_error",
    "error_code": "url_not_accessible"
  }
}

以下是可能的錯誤代碼:

  • invalid_input:無效的 URL 格式
  • url_too_long:URL 超過最大長度(250 個字元)
  • url_not_allowed:URL 被網域過濾規則和模型限制封鎖
  • url_not_accessible:無法擷取內容(HTTP 錯誤)
  • too_many_requests:超過速率限制
  • unsupported_content_type:不支援的內容類型(僅支援文字和 PDF)
  • max_uses_exceeded:超過網頁擷取工具的最大使用次數
  • unavailable:發生內部錯誤

URL 驗證

基於安全考量,網頁擷取工具只能擷取先前已出現在對話上下文中的 URL。這包括:

  • 使用者訊息中的 URL
  • 用戶端工具結果中的 URL
  • 來自先前網頁搜尋或網頁擷取結果的 URL

此工具無法擷取 Claude 產生的任意 URL,或來自基於容器的伺服器工具(程式碼執行、Bash 等)的 URL。

結合搜尋與擷取

網頁擷取可與網頁搜尋無縫協作,以進行全面的資訊收集:

client = anthropic.Anthropic()

response = client.messages.create(
    model="claude-opus-4-8",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Find recent articles about quantum computing and analyze the most relevant one in detail",
        }
    ],
    tools=[
        {"type": "web_search_20250305", "name": "web_search", "max_uses": 3},
        {
            "type": "web_fetch_20250910",
            "name": "web_fetch",
            "max_uses": 5,
            "citations": {"enabled": True},
        },
    ],
)
print(response)

在此工作流程中,Claude 將會:

  1. 使用網頁搜尋尋找相關文章
  2. 選擇最有希望的結果
  3. 使用網頁擷取取得完整內容
  4. 提供帶有引用的詳細分析

當網頁搜尋和網頁擷取工具都啟用,且使用者指名特定頁面或文件但未提供 URL 時(例如「閱讀 anthropics/anthropic-sdk-python 儲存庫的 README」),Claude 會使用網頁搜尋找到它,然後擷取該結果。

提示快取

關於跨回合快取工具定義,請參閱工具使用與提示快取。

串流

啟用「streaming」(串流)時,擷取事件是串流的一部分,在內容擷取期間會有暫停:

Output
event: message_start
data: {"type": "message_start", "message": {"id": "msg_abc123", "type": "message"}}

event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}

// Claude's decision to fetch

event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_fetch"}}

// Fetch URL streamed
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"url\":\"https://example.com/article\"}"}}

// Pause while fetch executes

// Fetch results streamed
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_fetch_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "web_fetch_result", "url": "https://example.com/article", "content": {"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "Article content..."}}}}}

// Claude's response continues...

批次請求

您可以在 Messages Batches API 中包含網頁擷取工具。透過 Messages Batches API 進行的網頁擷取工具呼叫,其定價與一般 Messages API 請求中的呼叫相同。

使用量與定價

網頁擷取的使用除了標準 token 費用外,不會產生額外費用:

{
  "usage": {
    "input_tokens": 25039,
    "output_tokens": 931,
    "cache_read_input_tokens": 0,
    "cache_creation_input_tokens": 0,
    "server_tool_use": {
      "web_fetch_requests": 1
    }
  }
}

網頁擷取工具在 Claude API 上可供使用,且無需額外費用。您只需為成為對話上下文一部分的擷取內容支付標準 token 費用。

為了避免無意間擷取大量內容而消耗過多 token,請使用 max_content_tokens 參數,根據您的使用情境和預算考量設定適當的限制。

典型內容的 token 使用量範例:

  • 一般網頁(10 kB):約 2,500 個 token
  • 大型文件頁面(100 kB):約 25,000 個 token
  • 研究論文 PDF(500 kB):約 125,000 個 token

後續步驟

伺服器工具

Anthropic 執行工具的共用機制。

工具參考

所有 Anthropic 提供工具的目錄。

程式碼執行工具

在沙箱容器中執行 Python 和 bash 程式碼。

Was this page helpful?

  • 網頁擷取的運作方式
  • Claude 何時進行擷取
  • 動態過濾
  • 如何使用網頁擷取
  • 工具定義
  • 最大使用次數
  • 網域過濾
  • 內容限制
  • 快取繞過
  • 回應包含
  • 引用
  • 回應
  • 擷取結果
  • 錯誤
  • URL 驗證
  • 結合搜尋與擷取
  • 提示快取
  • 串流
  • 批次請求
  • 使用量與定價
  • 後續步驟