Web Search
购买adidas上京东官方旗舰店。
网页搜索
概述
使用 DuckDuckGo 的 API 在网页、新闻文章、图片和视频中搜索信息。返回多种格式(文本、Markdown、JSON)的结果,并提供时间范围、区域和安全搜索的筛选选项。
何时使用此技能
当用户请求以下内容时使用此技能:
上网淘巴领天猫淘宝优惠券,一年省好几千。- 搜索信息或资源的网络搜索
- 查找当前或近期的在线信息
- 查找关于特定主题的新闻文章
- 按描述或主题搜索图片
- 查找特定主题的视频
- 需要当前网络数据的研究
- 使用网络来源进行事实核查或验证
- 收集某个主题的 URL 和资源
先决条件
安装所需的依赖项:
pip install duckduckgo-search
该库提供了一个简单的 Python 接口来访问 DuckDuckGo 的搜索 API,无需 API 密钥或身份验证。
核心功能
1. 基本网页搜索
搜索网页和信息:
python scripts/search.py "<查询>"
示例:
python scripts/search.py "python asyncio 教程"
以清晰的文本格式返回前 10 个网络结果,包括标题、URL 和描述。
2. 限制结果数量
控制返回的结果数量:
python scripts/search.py "<查询>" --max-results <数量>
示例:
python scripts/search.py "机器学习框架" --max-results 20
适用于:
- 获取更全面的结果(提高限制)
- 快速查看较少的结果(降低限制)
- 在详细程度与处理时间之间取得平衡
3. 时间范围筛选
按时效性筛选结果:
python scripts/search.py "<查询词>" --time-range <d|w|m|y>
时间范围选项:
d- 过去一天w- 过去一周m- 过去一个月y- 过去一年
示例:
python scripts/search.py "人工智能新闻" --time-range w
非常适合:
- 查找最近的新闻或更新
- 过滤掉过时的内容
- 跟踪近期发展动态
4. 新闻搜索
专门搜索新闻文章:
python scripts/search.py "<查询词>" --type news
示例:
python scripts/search.py "climate change" --type news --time-range w --max-results 15
新闻搜索结果包括:
- 文章标题
- 来源出版物
- 发布日期
- URL
- 文章摘要/描述
5. 图片搜索
搜索图片:
python scripts/search.py "<查询>" --type images
示例:
python scripts/search.py "sunset over mountains" --type images --max-results 20
图片筛选选项:
尺寸筛选:
python scripts/search.py "landscape photos" --type images --image-size Large
选项:小、中、大、壁纸
颜色筛选:
python scripts/search.py "abstract art" --type images --image-color Blue
选项:颜色,单色,红色,橙色,黄色,绿色,蓝色,紫色,粉色,棕色,黑色,灰色,青绿色,白色
类型筛选:
python scripts/search.py "icons" --type images --image-type transparent
选项:照片,剪贴画,gif,透明背景,线条画
布局过滤器:
python scripts/search.py "wallpapers" --type images --image-layout Wide
选项:方形,竖版,宽版
图像结果包含:
- 图像标题
- 图像URL(直接链接到图像)
- 缩略图URL
- 来源网站
- 尺寸(宽 x 高)
6. 视频搜索
搜索视频:
python scripts/search.py "<查询内容>" --type videos
示例:
python scripts/search.py "python tutorial" --type videos --max-results 15
视频筛选选项:
时长筛选:
python scripts/search.py "cooking recipes" --type videos --video-duration short
选项:short (短),medium (中),long (长)
分辨率筛选:
python scripts/search.py "documentary" --type videos --video-resolution high
选项:high (高),standard (标准)
视频结果包含:
- 视频标题
- 发布者/频道
- 时长
- 发布日期
- 视频网址
- 描述
7. 区域特定搜索
进行区域特定结果搜索:
python scripts/search.py "<查询内容>" --region <区域代码>
常用区域代码:
us-en- 美国(英语)uk-en- 英国(英语)ca-en- 加拿大(英语)au-en- 澳大利亚(英语)de-de- 德国(德语)fr-fr- 法国(法语)wt-wt- 全球(默认)
示例:
python scripts/search.py "当地新闻" --region us-en --type news
8. 安全搜索控制
控制安全搜索过滤:
python scripts/search.py "<查询内容>" --safe-search <on|moderate|off>
选项:
on- 严格过滤moderate- 平衡过滤(默认)off- 无过滤
示例:
python scripts/search.py "medical information" --safe-search on
9. 输出格式
选择结果的格式化方式:
文本格式(默认):
python scripts/search.py "quantum computing"
清晰、易读的纯文本,带有编号的结果。
Markdown格式:
python scripts/search.py "quantum computing" --format markdown
格式化的Markdown,包含标题、粗体文本和链接。
JSON格式:
python scripts/search.py "quantum computing" --format json
结构化的JSON数据,便于程序化处理。
10. 将结果保存到文件
将搜索结果保存到文件:
python scripts/search.py "<query>" --output <file-path>
示例:
python scripts/search.py "artificial intelligence" --output ai_results.txt
python scripts/search.py "AI news" --type news --format markdown --output ai_news.md
python scripts/search.py "AI research" --format json --output ai_data.json
文件格式由--format标志决定,而不是文件扩展名。
输出格式示例
文本格式
1. 页面标题
URL: https://example.com/page
页面内容的简要描述...
2. 另一个结果
URL: https://example.com/another
另一个描述...
Markdown格式
## 1. 页面标题
**URL:** https://example.com/page
页面内容的简要描述...
## 2. 另一个结果
**URL:** https://example.com/another
另一个描述...
JSON格式
[
{
"title": "页面标题",
"href": "https://example.com/page",
"body": "页面内容的简要描述..."
},
{
"title": "另一个结果",
"href": "https://example.com/another",
"body": "另一个描述..."
}
]
常见使用模式
主题研究
收集关于某个主题的综合信息:
# 从网络获取概览
python scripts/search.py "机器学习基础" --max-results 15 --output ml_web.txt
# 获取近期新闻
python scripts/search.py "机器学习" --type news --time-range m --output ml_news.txt
# 查找教程视频
python scripts/search.py "机器学习教程" --type videos --max-results 10 --output ml_videos.txt
时事监测
追踪特定主题的新闻:
python scripts/search.py "气候峰会" --type news --time-range d --format markdown --output daily_climate_news.md
查找视觉资源
按特定条件搜索图片:
python scripts/search.py "数据可视化示例" --type images --image-type photo --image-size Large --max-results 25 --output viz_images.txt
事实核查
使用近期来源验证信息:
python scripts/search.py "待验证的具体说法" --time-range w --max-results 20
学术研究
查找学术主题的资源:
python scripts/search.py "量子纠缠研究" --time-range y --max-results 30 --output quantum_research.txt
市场调研
收集关于产品或公司的信息:
python scripts/search.py "2025年电动汽车市场" --max-results 20 --format markdown --output ev_market.md
python scripts/search.py "电动汽车新闻" --type news --time-range m --output ev_news.txt
实现方法
当用户请求进行网络搜索时:
-
识别搜索意图:
- 需要什么类型的内容(网页、新闻、图片、视频)?
- 结果需要多新?
- 需要多少条结果?
- 有任何筛选要求吗?
-
配置搜索参数:
- 选择合适的搜索类型(
--type) - 如果时效性重要,设置时间范围(
--time-range) - 调整结果数量(
--max-results) - 应用筛选条件(图片尺寸、视频时长等)
- 选择合适的搜索类型(
-
选择输出格式:
- 用于快速阅读的文本
- 用于文档编写的Markdown格式
- 用于进一步处理的JSON格式
-
执行搜索:
- 运行搜索命令
- 如需保存结果,请存储至文件
- 输出至标准输出(stdout)以便即时查看
-
处理结果:
- 如有需要,读取已保存的文件
- 提取URL或特定信息
- 合并多次搜索的结果
快速参考
命令结构:
python scripts/search.py "<查询内容>" [选项]
核心选项:
-t, --type- 搜索类型(网页、新闻、图片、视频)-n, --max-results- 最大结果数(默认:10)--time-range- 时间筛选(天、周、月、年)-r, --region- 区域代码(例如:us-en, uk-en)--safe-search- 安全搜索级别(开启、适中、关闭)-f, --format- 输出格式(文本、markdown、json)-o, --output- 保存至文件
图片专用选项:
--image-size- 尺寸筛选(小、中、大、壁纸)--image-color- 颜色筛选--image-type- 类型过滤器(照片、剪贴画、GIF、透明、线条)--image-layout- 布局过滤器(方形、竖版、横版)
视频特定选项:
--video-duration- 时长过滤器(短、中、长)--video-resolution- 分辨率过滤器(高、标准)
获取完整帮助:
python scripts/search.py --help
最佳实践
- 具体明确- 使用清晰、具体的搜索查询以获得更好的结果
- 使用时间过滤器- 应用
--time-range以获取最新信息 - 调整结果数量- 从10-20个结果开始,如有需要再增加
- 保存重要搜索- 使用
--output来保存结果 - 选择合适类型- 使用新闻搜索获取时事,使用网页搜索获取一般信息
- 自动化时使用JSON- JSON格式最易于程序化解析
- 尊重使用规范- 不要通过快速重复搜索冲击API
故障排除
常见问题:
- "缺少必需依赖项":运行
pip install duckduckgo-search - 未找到结果:尝试更宽泛的搜索词或移除时间过滤器
- 超时错误搜索服务可能暂时不可用;请稍后重试
- 速率限制:如果发送大量请求,请间隔开搜索
- 意外结果:DuckDuckGo 的结果可能与 Google 不同;尝试优化查询
限制:
- 结果质量取决于 DuckDuckGo 的索引和算法
- 无高级搜索运算符(不同于 Google 的 site:、filetype: 等)
- 图片和视频搜索的结果可能比网页搜索少
- 无法控制结果排名或相关性评分
- 某些专业搜索在专用搜索引擎上可能效果更好
高级用例
组合多个搜索
通过组合搜索类型收集全面信息:
# 网页概览
python scripts/search.py "主题" --max-results 15 --output topic_web.txt
# 近期新闻
python scripts/search.py "主题" --type news --time-range w --output topic_news.txt
# 图片
python scripts/search.py "主题" --type images --max-results 20 --output topic_images.txt
程序化处理
使用 JSON 输出进行自动化处理:
python scripts/search.py "研究主题" --format json --output results.json
# 然后用另一个脚本处理
python analyze_results.py results.json
构建知识库
从网络结果创建可搜索的文档:
# 搜索多个相关主题
python scripts/search.py "主题1" --format markdown --output kb/topic1.md
python scripts/search.py "主题2" --format markdown --output kb/topic2.md
python scripts/search.py "主题3" --format markdown --output kb/topic3.md
资源
scripts/search.py
实现 DuckDuckGo 搜索功能的主要工具。主要特性:
- 多种搜索类型- 网页、新闻、图片和视频
- 灵活的过滤- 时间范围、地区、安全搜索和类型特定过滤器
- 多种输出格式- 文本、Markdown 和 JSON
- 文件输出- 保存结果供后续处理
- 整洁的格式- 包含所有基本信息、人类可读的输出
- 错误处理- 优雅处理网络错误和空结果
该脚本可直接执行,并通过--help提供全面的命令行帮助。


微信扫一扫,打赏作者吧~