mcpField
9
9router-web-fetch

9router-web-fetch

github.com/decolua生产力31.6k158 次安装今天更新
代码仓库

关于 9router-web-fetch

9router-web-fetch 是通过 9Router 调用网页提取服务的技能,面向需要从 URL 获取页面内容的工作流。它支持多个提供方、输出格式选择、字符截断,以及 fetch-combo 自动回退。

主要功能

  1. 01发现可用网页提取模型
  2. 02按 URL 提取网页内容
  3. 03选择 Markdown、文本或 HTML
  4. 04设置输出字符上限
  5. 05使用 fetch-combo 自动回退

适用场景

  1. 01提取网页供后续处理
  2. 02为动态渲染页面选择 Firecrawl
  3. 03批量提取页面原始内容
  4. 04获取页面标题和发现的链接

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/decolua/9router --skill 9router-web-fetch

安装后在 Claude Code 中输入/9router-web-fetch确认已加载。

详细介绍

9Router — 网页抓取

需要设置 NINEROUTER_URL(若启用了鉴权,还需设置 NINEROUTER_KEY)。安装配置请参阅 https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md。

发现

curl $NINEROUTER_URL/v1/models/web | jq '.data[] | select(.kind=="webFetch") | .id'
# Per-provider params
curl "$NINEROUTER_URL/v1/models/info?id=firecrawl/fetch"

ID 以 /fetch 结尾(例如 firecrawl/fetch、jina/fetch)。fetch-combo 会串联多个服务商并自动回退。

端点

POST $NINEROUTER_URL/v1/web/fetch

字段是否必填说明
model(或 provider)是来自 /v1/models/web(例如 firecrawl 或 jina-reader)
url是需要提取内容的 URL
format否markdown(默认)/ text / html
max_characters否截断输出

示例

Jina Reader
curl -X POST $NINEROUTER_URL/v1/web/fetch \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"jina-reader","url":"https://9router.com","format":"markdown"}'
Exa
curl -X POST $NINEROUTER_URL/v1/web/fetch \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"exa","url":"https://example.com","format":"markdown","max_characters":0}'
Firecrawl
curl -X POST $NINEROUTER_URL/v1/web/fetch \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"firecrawl","url":"https://example.com","format":"markdown","max_characters":0}'
Tavily
curl -X POST $NINEROUTER_URL/v1/web/fetch \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"tavily","url":"https://example.com","format":"markdown","max_characters":0}'
Ollama Cloud

使用已有 ollama 连接中的 API 密钥。

curl -X POST $NINEROUTER_URL/v1/web/fetch \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"ollama","url":"https://example.com","format":"markdown"}'

JS:

const r = await fetch(`${process.env.NINEROUTER_URL}/v1/web/fetch`, {
  method: "POST",
  headers: { "Authorization": `Bearer ${process.env.NINEROUTER_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({ model: "fetch-combo", url: "https://example.com", format: "markdown", max_characters: 5000 }),
});
const { data } = await r.json();
console.log(data.title, data.content.length);

响应结构

{
  "provider": "jina-reader",
  "url": "...",
  "title": "...",
  "content": { "format": "markdown", "text": "...", "length": 1234 },
  "links": ["https://example.com/related"],
  "metadata": { "author": null, "published_at": null, "language": null },
  "usage": { "fetch_cost_usd": 0 },
  "metrics": { "response_time_ms": 850, "upstream_latency_ms": 700 }
}

当上游服务商返回发现的页面链接时(目前仅 Ollama Cloud),响应中会包含 links。

服务商特性

服务商鉴权适用场景
firecrawlBearer需要 JS 渲染的页面,format=markdown/html
jina-readerBearer(可选)免费额度(约每月 100 万字符);纯 Markdown 速度最快
tavilyBearer批量提取;返回 raw_content
exax-api-key已预先索引的页面;快速文本提取
ollamaBearerMarkdown 以及页面标题和发现的链接;使用 Ollama Cloud 密钥

评论

支持 Markdown