DuckDuckGo Search Skill
使用 DuckDuckGo 进行隐私保护的网页搜索,无需 API Key。
特点
- - ✅ 无需 API Key - 直接使用
- ✅ 隐私保护 - 不追踪用户
- ✅ 两种模式 - Instant API / HTML Scraping
- ✅ 免费无限制 - 无配额限制
使用方法
基本搜索
CODEBLOCK0
指定结果数量
CODEBLOCK1
选择搜索模式
CODEBLOCK2
带关键信息总结
CODEBLOCK3
JSON 输出
CODEBLOCK4
参数说明
| 参数 | 说明 | 默认值 |
|---|
| INLINECODE0 | 搜索关键词(必需) | - |
| INLINECODE1 |
返回结果数量 | 5 |
|
--mode | 搜索模式:
instant /
html |
html |
|
--fetch-content | 抓取网页内容(仅 html) | false |
|
--summarize | 生成关键信息总结 | false |
|
--json | 输出原始 JSON | false |
搜索模式对比
| 模式 | 优点 | 缺点 | 适用场景 |
|---|
| Instant | 快速、稳定 | 结果有限 | 事实性问题、定义查询 |
| HTML |
完整搜索结果 | 可能被反爬 | 一般搜索、需要多个结果 |
Instant 模式示例
CODEBLOCK5
输出:
CODEBLOCK6
HTML 模式示例
CODEBLOCK7
输出格式
标准输出(默认)
CODEBLOCK8
JSON 输出
CODEBLOCK9
在 OpenClaw 中使用
自动搜索(根据 SOUL.md)
CODEBLOCK10
手动调用
CODEBLOCK11
限制与注意事项
⚠️ 速率限制
- - DuckDuckGo 没有官方 API,使用 HTML 端点可能被限制
- 建议请求间隔 2-5 秒
- 大量请求可能触发 403 错误
⚠️ 结果质量
- - Instant 模式:只返回"即时答案"和相关主题,不是完整搜索
- HTML 模式:返回完整结果,但解析可能不稳定
⚠️ 反爬虫
- - DuckDuckGo 可能检测并阻止自动化请求
- 如遇 403 错误,稍后重试
- 生产环境建议使用官方 API(如 Tavily、Brave)
与 Tavily 搜索对比
| 特性 | DuckDuckGo | Tavily |
|---|
| API Key | 不需要 | 需要 |
| 成本 |
免费 | 免费额度 + 付费 |
|
结果质量 | 一般 | 优秀(AI 总结) |
|
稳定性 | 一般 | 高 |
|
适用场景 | 轻量搜索 | 生产环境 |
建议:
- - 日常轻量搜索 → DuckDuckGo
- 生产环境/高质量需求 → Tavily
故障排除
问题 1:无搜索结果
原因:Instant API 没有相关答案
解决:切换到 HTML 模式
CODEBLOCK12
问题 2:403 Forbidden
原因:被 DuckDuckGo 限制
解决:
- 1. 等待几分钟后重试
- 降低请求频率
- 使用代理 IP
问题 3:URL 无法访问
原因:DuckDuckGo 重定向链接未正确解析
解决:检查 extract_real_url() 函数
示例查询
CODEBLOCK13
相关技能
- - tavily-search - AI 增强搜索(推荐用于生产)
- websearch - OpenClaw 内置搜索(需 Brave API)
- webfetch - 网页内容提取
基于 DuckDuckGo 公开端点,仅供学习使用。生产环境建议使用官方 API。
DuckDuckGo 搜索技能
使用 DuckDuckGo 进行隐私保护的网页搜索,无需 API Key。
特点
- - ✅ 无需 API Key - 直接使用
- ✅ 隐私保护 - 不追踪用户
- ✅ 两种模式 - Instant API / HTML Scraping
- ✅ 免费无限制 - 无配额限制
使用方法
基本搜索
bash
python3 scripts/duckduckgo_search.py 搜索关键词
指定结果数量
bash
python3 scripts/duckduckgo_search.py Python 教程 -n 10
选择搜索模式
bash
Instant 模式(快速,适合事实性问题)
python3 scripts/duckduckgo_search.py Python 是什么 --mode instant
HTML 模式(完整搜索结果)
python3 scripts/duckduckgo_search.py Python 教程 --mode html
带关键信息总结
bash
python3 scripts/duckduckgo_search.py 伊朗局势 --summarize
JSON 输出
bash
python3 scripts/duckduckgo_search.py API --json
参数说明
| 参数 | 说明 | 默认值 |
|---|
| query | 搜索关键词(必需) | - |
| -n, --top-k |
返回结果数量 | 5 |
| --mode | 搜索模式:instant / html | html |
| --fetch-content | 抓取网页内容(仅 html) | false |
| --summarize | 生成关键信息总结 | false |
| --json | 输出原始 JSON | false |
搜索模式对比
| 模式 | 优点 | 缺点 | 适用场景 |
|---|
| Instant | 快速、稳定 | 结果有限 | 事实性问题、定义查询 |
| HTML |
完整搜索结果 | 可能被反爬 | 一般搜索、需要多个结果 |
Instant 模式示例
bash
python3 scripts/duckduckgo_search.py Python 编程语言
输出:
🔍 DuckDuckGo 搜索结果 (3 条)
============================================================
- 1. Python (programming language) - Wikipedia
🔗 https://en.wikipedia.org/wiki/Python
(programminglanguage)
📝 Python is a high-level, general-purpose programming language...
📊 来源:instant
- 2. Python.org
🔗 https://www.python.org/
📝 The official home of the Python Programming Language...
📊 来源:instant
HTML 模式示例
bash
python3 scripts/duckduckgo_search.py Python 入门教程 --mode html -n 10
输出格式
标准输出(默认)
🔍 DuckDuckGo 搜索结果 (5 条)
============================================================
- 1. 标题
🔗 https://example.com
📝 内容摘要...
📊 来源:instant/html
JSON 输出
json
[
{
title: 标题,
url: https://example.com,
snippet: 摘要,
source: instant,
type: abstract
}
]
在 OpenClaw 中使用
自动搜索(根据 SOUL.md)
搜一下 Python 教程
手动调用
bash
exec(python3 skills/duckduckgo-search/scripts/duckduckgo_search.py 关键词 -n 5)
限制与注意事项
⚠️ 速率限制
- - DuckDuckGo 没有官方 API,使用 HTML 端点可能被限制
- 建议请求间隔 2-5 秒
- 大量请求可能触发 403 错误
⚠️ 结果质量
- - Instant 模式:只返回即时答案和相关主题,不是完整搜索
- HTML 模式:返回完整结果,但解析可能不稳定
⚠️ 反爬虫
- - DuckDuckGo 可能检测并阻止自动化请求
- 如遇 403 错误,稍后重试
- 生产环境建议使用官方 API(如 Tavily、Brave)
与 Tavily 搜索对比
| 特性 | DuckDuckGo | Tavily |
|---|
| API Key | 不需要 | 需要 |
| 成本 |
免费 | 免费额度 + 付费 |
|
结果质量 | 一般 | 优秀(AI 总结) |
|
稳定性 | 一般 | 高 |
|
适用场景 | 轻量搜索 | 生产环境 |
建议:
- - 日常轻量搜索 → DuckDuckGo
- 生产环境/高质量需求 → Tavily
故障排除
问题 1:无搜索结果
原因:Instant API 没有相关答案
解决:切换到 HTML 模式
bash
python3 scripts/duckduckgo_search.py 关键词 --mode html
问题 2:403 Forbidden
原因:被 DuckDuckGo 限制
解决:
- 1. 等待几分钟后重试
- 降低请求频率
- 使用代理 IP
问题 3:URL 无法访问
原因:DuckDuckGo 重定向链接未正确解析
解决:检查 extractrealurl() 函数
示例查询
bash
事实性问题(Instant 模式)
python3 scripts/duckduckgo_search.py Python 是谁创造的
教程搜索(HTML 模式)
python3 scripts/duckduckgo_search.py Python 入门教程 --mode html -n 10
技术文档
python3 scripts/duckduckgo_search.py Python requests 库用法 --mode html
获取 JSON 用于程序处理
python3 scripts/duckduckgo_search.py API --json
相关技能
- - tavily-search - AI 增强搜索(推荐用于生产)
- websearch - OpenClaw 内置搜索(需 Brave API)
- webfetch - 网页内容提取
基于 DuckDuckGo 公开端点,仅供学习使用。生产环境建议使用官方 API。