关于 extract
Extract 是从指定 URL 提取清洁内容的技能,支持单页和批量处理。它可按查询聚焦内容,并提供适用于 JavaScript 页面和结构化数据的基础或高级提取模式。
主要功能
- 01单次提取最多 20 个 URL
- 02按查询聚焦结果
- 03选择基础或高级提取
- 04输出 Markdown 或纯文本
- 05包含图片 URL
适用场景
- 01获取已知文章 URL 的内容
- 02从文档中提取相关片段
- 03处理 JavaScript 密集型页面
- 04批量处理多个页面
MCP 相关
此技能通过 Tavily MCP 服务使用 OAuth,也可使用 Tavily API 密钥。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ tavily-ai/ skills --skill extract安装后在 Claude Code 中输入/extract确认已加载。
附带文件scripts/extract.sh
详细介绍
提取内容
从指定 URL 中提取干净的内容。适合已确定要提取哪些页面的情况。
身份验证
该脚本通过 Tavily MCP 服务使用 OAuth。无需手动设置——首次运行时,它会:
- 检查
~/.mcp-auth/中是否有现有令牌 - 如果没有,则自动打开浏览器进行 OAuth 身份验证
**注意:**你必须拥有现有的 Tavily 账号。OAuth 流程仅支持登录,无法通过此流程创建账号。如果你还没有账号,请先在 tavily.com 注册。
替代方案:API 密钥
如果你更愿意使用 API 密钥,可在 https://tavily.com 获取一个,并添加到 ~/.claude/settings.json:
{
"env": {
"TAVILY_API_KEY": "tvly-your-api-key-here"
}
}
快速开始
使用脚本
./scripts/extract.sh '<json>'
示例:
# Single URL
./scripts/extract.sh '{"urls": ["https://example.com/article"]}'
# Multiple URLs
./scripts/extract.sh '{"urls": ["https://example.com/page1", "https://example.com/page2"]}'
# With query focus and chunks
./scripts/extract.sh '{"urls": ["https://example.com/docs"], "query": "authentication API", "chunks_per_source": 3}'
# Advanced extraction for JS pages
./scripts/extract.sh '{"urls": ["https://app.example.com"], "extract_depth": "advanced", "timeout": 60}'
基本提取
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": ["https://example.com/article"]
}'
带查询焦点的多个 URL
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": [
"https://example.com/ml-healthcare",
"https://example.com/ai-diagnostics"
],
"query": "AI diagnostic tools accuracy",
"chunks_per_source": 3
}'
API 参考
端点
POST https://api.tavily.com/extract
标头
| 标头 | 值 |
|---|---|
Authorization | Bearer <TAVILY_API_KEY> |
Content-Type | application/json |
请求正文
| 字段 | 类型 | 默认值 | 说明 |
|---|---|---|---|
urls | 数组 | 必填 | 要提取的 URL(最多 20 个) |
query | 字符串 | null | 根据相关性重新排列内容块 |
chunks_per_source | 整数 | 3 | 每个 URL 的内容块数(1-5,需要提供 query) |
extract_depth | 字符串 | "basic" | basic 或 advanced(适用于 JS 页面) |
format | 字符串 | "markdown" | markdown 或 text |
include_images | 布尔值 | false | 包含图片 URL |
timeout | 浮点数 | 不定 | 最长等待时间(1-60 秒) |
响应格式
{
"results": [
{
"url": "https://example.com/article",
"raw_content": "# Article Title\n\nContent..."
}
],
"failed_results": [],
"response_time": 2.3
}
提取深度
| 深度 | 适用情况 |
|---|---|
basic | 简单文本提取,速度更快 |
advanced | 动态/JS 渲染页面、表格、结构化数据 |
示例
提取单个 URL
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": ["https://docs.python.org/3/tutorial/classes.html"],
"extract_depth": "basic"
}'
使用查询进行定向提取
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": [
"https://example.com/react-hooks",
"https://example.com/react-state"
],
"query": "useState and useEffect patterns",
"chunks_per_source": 2
}'
JavaScript 内容较多的页面
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": ["https://app.example.com/dashboard"],
"extract_depth": "advanced",
"timeout": 60
}'
批量提取
curl --request POST \
--url https://api.tavily.com/extract \
--header "Authorization: Bearer $TAVILY_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"urls": [
"https://example.com/page1",
"https://example.com/page2",
"https://example.com/page3",
"https://example.com/page4",
"https://example.com/page5"
],
"extract_depth": "basic"
}'
提示
- 每个请求最多 20 个 URL——较长的列表请分批处理
- 使用
query+chunks_per_source,仅获取相关内容 - 先尝试
basic,如果缺少内容,再改用advanced - 对于加载缓慢的页面,设置更长的
timeout(最长 60 秒) - 检查
failed_results,查看无法提取的 URL
评论
支持 Markdown