Performs web searches using DuckDuckGo to retrieve real-time information from the internet. Use when the user needs to search for current events, documentation, tutorials, or any information that requires web search capabilities.
使用DuckDuckGo进行网络搜索以获取实时信息。适用于用户需要搜索时事、文档、教程等需联网查询的信息。
DuckDuckGo Web Search Skill
功能概述
DuckDuckGo Web Search Skill是一项面向实际任务的技能,主要用于这个技能通过 DuckDuckGo 搜索引擎实现网络搜索功能,帮助获取实时信息;🔍 基于 DuckDuckGo 的隐私友好型搜索;
核心要点
- 📰 支持新闻搜索;
- 🖼️ 支持图片搜索;
- 📹 支持视频搜索;
使用与执行
🌐 无需 API Key,免费使用;🔒 保护隐私,不追踪用户;命令行方式;1. 文本搜索 (Text Search);最常用的搜索方。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
结果检查与注意事项
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
DuckDuckGo Web Search Skill
这个技能通过 DuckDuckGo 搜索引擎实现网络搜索功能,帮助获取实时信息。
功能特性
- 🔍 基于 DuckDuckGo 的隐私友好型搜索
- 📰 支持新闻搜索
- 🖼️ 支持图片搜索
- 📹 支持视频搜索
- 🌐 无需 API Key,免费使用
- 🔒 保护隐私,不追踪用户
安装
# 使用 uv 安装(推荐)
uv pip install duckduckgo-search
# 或使用 pip 安装
pip install duckduckgo-search
快速开始
命令行方式
# 基础文本搜索
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.text('Python tutorial', max_results=5))
for r in results:
print(f"标题: {r['title']}")
print(f"链接: {r['href']}")
print(f"摘要: {r['body']}")
print('---')
"
搜索类型
1. 文本搜索 (Text Search)
最常用的搜索方式,返回网页结果:
python -c "
from duckduckgo_search import DDGS
query = 'your search query'
with DDGS() as ddgs:
results = list(ddgs.text(
query,
region='cn-zh', # 地区设置:cn-zh(中国), us-en(美国), wt-wt(全球)
safesearch='moderate', # 安全搜索:on, moderate, off
timelimit='m', # 时间范围:d(天), w(周), m(月), y(年), None(不限)
max_results=10 # 最大结果数
))
for i, r in enumerate(results, 1):
print(f"{i}. {r['title']}")
print(f" URL: {r['href']}")
print(f" 摘要: {r['body'][:100]}...")
print()
"
2. 新闻搜索 (News Search)
搜索最新新闻:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.news(
'AI technology',
region='wt-wt',
safesearch='moderate',
timelimit='d', # d=过去24小时, w=过去一周, m=过去一月
max_results=10
))
for r in results:
print(f"📰 {r['title']}")
print(f" 来源: {r['source']}")
print(f" 时间: {r['date']}")
print(f" 链接: {r['url']}")
print()
"
3. 图片搜索 (Image Search)
搜索图片资源:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.images(
'cute cats',
region='wt-wt',
safesearch='moderate',
size='Medium', # Small, Medium, Large, Wallpaper
type_image='photo', # photo, clipart, gif, transparent, line
layout='Square', # Square, Tall, Wide
max_results=10
))
for r in results:
print(f"🖼️ {r['title']}")
print(f" 图片: {r['image']}")
print(f" 缩略图: {r['thumbnail']}")
print(f" 来源: {r['source']}")
print()
"
4. 视频搜索 (Video Search)
搜索视频内容:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.videos(
'Python programming',
region='wt-wt',
safesearch='moderate',
timelimit='w', # d, w, m
resolution='high', # high, standard
duration='medium', # short, medium, long
max_results=10
))
for r in results:
print(f"📹 {r['title']}")
print(f" 时长: {r.get('duration', 'N/A')}")
print(f" 来源: {r['publisher']}")
print(f" 链接: {r['content']}")
print()
"
5. 即时回答 (Instant Answers)
获取 DuckDuckGo 的即时回答:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = ddgs.answers('what is python programming language')
for r in results:
print(f"📚 {r['text']}")
print(f" 来源: {r.get('url', 'DuckDuckGo')}")
"
6. 建议搜索 (Suggestions)
获取搜索建议:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
suggestions = list(ddgs.suggestions('python'))
print('🔍 搜索建议:')
for s in suggestions:
print(f" - {s['phrase']}")
"
7. 地图搜索 (Maps Search)
搜索地点信息:
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.maps(
'coffee shop',
place='Beijing, China',
max_results=10
))
for r in results:
print(f"📍 {r['title']}")
print(f" 地址: {r['address']}")
print(f" 电话: {r.get('phone', 'N/A')}")
print(f" 坐标: {r['latitude']}, {r['longitude']}")
print()
"
实用脚本
通用搜索函数
创建一个可复用的搜索脚本:
python -c "
from duckduckgo_search import DDGS
import json
def web_search(query, search_type='text', max_results=5, region='wt-wt', timelimit=None):
'''
执行 DuckDuckGo 搜索
参数:
query: 搜索关键词
search_type: 搜索类型 (text, news, images, videos)
max_results: 最大结果数
region: 地区 (cn-zh, us-en, wt-wt)
timelimit: 时间限制 (d, w, m, y)
'''
with DDGS() as ddgs:
if search_type == 'text':
results = list(ddgs.text(query, region=region, timelimit=timelimit, max_results=max_results))
elif search_type == 'news':
results = list(ddgs.news(query, region=region, timelimit=timelimit, max_results=max_results))
elif search_type == 'images':
results = list(ddgs.images(query, region=region, max_results=max_results))
elif search_type == 'videos':
results = list(ddgs.videos(query, region=region, timelimit=timelimit, max_results=max_results))
else:
results = []
return results
# 使用示例
query = 'Python 3.12 new features'
results = web_search(query, search_type='text', max_results=5)
print(f'🔍 搜索: {query}')
print(f'📊 找到 {len(results)} 个结果')
print()
for i, r in enumerate(results, 1):
print(f"{i}. {r['title']}")
print(f" {r['href']}")
print(f" {r['body'][:150]}...")
print()
"
搜索并保存结果
python -c "
from duckduckgo_search import DDGS
import json
from datetime import datetime
query = 'latest tech news'
output_file = f'search_results_{datetime.now().strftime("%Y%m%d_%H%M%S")}.json'
with DDGS() as ddgs:
results = list(ddgs.text(query, max_results=10))
# 保存到 JSON 文件
with open(output_file, 'w', encoding='utf-8') as f:
json.dump({
'query': query,
'timestamp': datetime.now().isoformat(),
'results': results
}, f, ensure_ascii=False, indent=2)
print(f'✅ 搜索结果已保存到: {output_file}')
print(f'📊 共 {len(results)} 条结果')
"
多关键词批量搜索
python -c "
from duckduckgo_search import DDGS
import time
queries = [
'Python best practices 2024',
'React vs Vue 2024',
'AI development tools'
]
all_results = {}
with DDGS() as ddgs:
for query in queries:
print(f'🔍 搜索: {query}')
results = list(ddgs.text(query, max_results=3))
all_results[query] = results
print(f' 找到 {len(results)} 个结果')
time.sleep(1) # 避免请求过快
print()
print('=' * 50)
print('📊 搜索汇总')
print('=' * 50)
for query, results in all_results.items():
print(f'n🔎 {query}:')
for i, r in enumerate(results, 1):
print(f" {i}. {r['title'][:60]}...")
"
参数说明
地区代码 (region)
| 代码 | 地区 |
|---|---|
cn-zh |
中国 |
us-en |
美国 |
uk-en |
英国 |
jp-jp |
日本 |
kr-kr |
韩国 |
wt-wt |
全球 (无地区限制) |
时间限制 (timelimit)
| 值 | 含义 |
|---|---|
d |
过去 24 小时 |
w |
过去一周 |
m |
过去一月 |
y |
过去一年 |
None |
不限制 |
安全搜索 (safesearch)
| 值 | 含义 |
|---|---|
on |
严格过滤 |
moderate |
适度过滤 (默认) |
off |
关闭过滤 |
错误处理
python -c "
from duckduckgo_search import DDGS
from duckduckgo_search.exceptions import DuckDuckGoSearchException
try:
with DDGS() as ddgs:
results = list(ddgs.text('test query', max_results=5))
print(f'✅ 搜索成功,找到 {len(results)} 个结果')
except DuckDuckGoSearchException as e:
print(f'❌ 搜索出错: {e}')
except Exception as e:
print(f'❌ 未知错误: {e}')
"
使用代理
如果需要使用代理:
python -c "
from duckduckgo_search import DDGS
# 设置代理
proxy = 'http://127.0.0.1:7890' # 替换为你的代理地址
with DDGS(proxy=proxy) as ddgs:
results = list(ddgs.text('test query', max_results=5))
print(f'通过代理搜索成功,找到 {len(results)} 个结果')
"
常见问题
安装失败?
# 确保 pip 是最新版本
pip install --upgrade pip
pip install duckduckgo-search
# 或使用 uv
uv pip install duckduckgo-search
搜索无结果?
# 检查网络连接
# 尝试使用代理
# 减少搜索关键词复杂度
# 检查地区设置是否正确
请求被限制?
# 在多次搜索之间添加延迟
import time
time.sleep(1) # 等待 1 秒
# 减少单次请求的结果数量
max_results=5 # 而不是 50
与其他工具集成
结合 browser-use 获取详细内容
# 1. 先用 DuckDuckGo 搜索
python -c "
from duckduckgo_search import DDGS
with DDGS() as ddgs:
results = list(ddgs.text('Python async tutorial', max_results=1))
if results:
url = results[0]['href']
print(f'URL: {url}')
"
# 2. 用 browser-use 打开并获取详细内容
browser-use open <url_from_search>
browser-use state
注意事项
⚠️ 使用建议:
- 遵守使用频率限制:避免短时间内大量请求
- 合理设置结果数量:不要一次请求过多结果
- 添加适当延迟:批量搜索时在请求之间添加
time.sleep() - 处理异常情况:始终添加错误处理代码
- 尊重版权:搜索结果仅供参考,注意内容版权
热门AI工具
相关专题
在JavaScript中,document对象是一个非常重要的全局对象,它代表整个HTML文档。想了解更多Document的相关内容,可以阅读本专题下面的文章。
6047
2024.03.14
电脑连上wifi无internet访问解决方法:1、检查其他设备是否能够连接互联网;2、检查WiFi连接的状态;3、重启路由器和电脑;4、检查IP地址和DNS设置;5、禁用并重新启用WiFi适配器等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
27
2024.01.15
临时Internet文件是当你访问一个网站或者浏览网页时,浏览器会自动把部分网页信息保存在一个叫“缓存”的文件夹中,以便提高浏览的速度。想了解更多Internet的相关内容,可以阅读本专题下面的文章。
1324
2023.12.06
document.cookie获取不到的解决办法:1、浏览器的隐私设置;2、Same-origin policy;3、HTTPOnly Cookie;4、JavaScript代码错误;5、Cookie不存在或过期等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。
766
2023.11.23
目录搜索引擎有Google、Bing、Yahoo、Baidu、DuckDuckGo等。想了解更多目录搜索引擎的相关内容,可以阅读本专题下面的文章。
25108
2023.11.06
internet.exe是Windows操作系统中负责管理互联网连接和网络通信的一个重要进程。作用是提供Internet连接和网络通信的功能,主要负责管理计算机与互联网之间的通信。通过与网络适配器和网络协议栈进行交互,实现数据的发送和接收。还负责处理网络连接的建立和维护,以及处理网络中断和错误。
1430
2023.09.01
无法连接到Internet的原因:1、可能是由于电脑或其他设备的故障造成的;2、网络供应商的问题;3、由于网络设置的问题导致的;4、电脑的防火墙或者安全软件阻止;5、网络的质量问题。本专题为大家提供无法连接到internet的相关的文章、下载、课程内容,供大家免费下载体验。
2101
2023.08.02
本专题汇总了当前主流的AI视频生成软件推荐与排行榜单,涵盖seko、AniShort、剧云、Lovart、LiblibAI及立刻mv等热门工具。同时整理了各软件在文生视频、图生视频、时长限制、画质表现及免费额度等方面的差异对比,助您快速选对适合创作需求的AI视频生成工具。
0
2026.09.16
本专题汇总了当前免费AI生成视频工具的排行榜与推荐清单,涵盖seko、讯飞智作、AniShort及剧云、Lovart等多模型集成平台。同时整理了各工具的免费额度、输出时长、水印政策及适用场景差异,助您快速选择合适工具开启AI视频创作。
0
2026.09.16
热门下载
相关下载
精品课程
共23课时 | 5.6万人学习
共5课时 | 1.5万人学习
共0课时 | 145人学习
最新文章