{"skill":{"slug":"multi-web-search","displayName":"Multi-Web-Search | 多引擎网页搜索","summary":"提供无须API密钥的多引擎并行网页搜索，支持20个国际、国内及专业搜索引擎，含时间和站点过滤，支持图片、新闻、视频搜索及DHT加速。","description":"---\nname: \"Multi-Web-Search | 多引擎网页搜索\"\ndescription: >\n  Free multi-engine web search skill v3.4. No API key required, supports 20 search engines (11 international + 7 domestic + 2 professional) with parallel search, time filters, and site filters.\n  New features: image/news/video/book search, DHT network acceleration, proxy support, configurable timeout.\n  | 免费多引擎网页搜索技能 v3.4。无需 API Key，支持 20 个搜索引擎并行搜索、时间过滤、站点过滤。\n  Use when you need real-time web search, code examples, technical docs, multi-language search, privacy-first searching, image search, news aggregation, or video search. Zero-config fallback (DuckDuckGo Lite), auto-degrades when ddgs unavailable. DHT network provides 90%% faster repeated queries.\nuse_when:\n  - \"需要搜索网页内容\"\n  - \"需要多引擎并行搜索\"\n  - \"需要免费搜索（无 API Key）\"\n  - \"需要时间过滤的新闻搜索\"\n  - \"需要站点限定的代码搜索\"\n  - \"需要中文/国际内容搜索\"\n  - \"需要 DuckDuckGo/Brave 等隐私引擎\"\n  - \"需要搜索 Reddit/HackerNews 社区\"\n  - \"需要技术文档/教程搜索\"\n  - \"需要图片搜索\"\n  - \"需要新闻聚合\"\n  - \"需要视频搜索\"\n  - \"需要代理搜索\"\n  - \"需要 DHT 加速\"\ntrigger:\n  phrases:\n    - \"搜索网页\"\n    - \"免费搜索\"\n    - \"多引擎搜索\"\n    - \"网页结果\"\n    - \"搜索引擎\"\n    - \"Google 搜索\"\n    - \"百度搜索\"\n    - \"DuckDuckGo\"\n    - \"Brave 搜索\"\n    - \"实时资讯\"\n    - \"最新新闻\"\n    - \"技术文档\"\n    - \"代码示例\"\n    - \"site:github\"\n    - \"--time week\"\n    - \"--domain\"\n    - \"web_fetch\"\n    - \"搜索一下\"\n    - \"帮我搜\"\n    - \"图片搜索\"\n    - \"新闻搜索\"\n    - \"视频搜索\"\n    - \"代理搜索\"\n    - \"DHT\"\nversion: 3.4.0\nemoji: \"🔍\"\nopenclaw:\n  requires:\n    bins: [python3]\n  suggests:\n    bins: [ddgs]\n    extras: [ddgs[dht]]  # DHT 网络加速（可选）\n---\n\n# 🌐 Multi-Web-Search v2.0.0\n\n**免费、无需 API Key 的多引擎网页搜索。** 支持 20 个搜索引擎（11 国际 + 7 国内 + 2 专业），可并行搜索、时间过滤、站点过滤。\n\n---\n\n## 快速开始\n\n```bash\n# 基础搜索（自动选择引擎）\npython3 search.py -q \"python tutorial\"\n\n# 多引擎并行\npython3 search.py -q \"react hooks\" -e google,brave\n\n# 时间过滤\npython3 search.py -q \"AI news\" --time week\n\n# 站点搜索\npython3 search.py -q \"machine learning\" --domain github.com\n\n# 无 ddgs 时，使用 DuckDuckGo Lite\npython3 search.py -q \"test\" --lite\n```\n\n---\n\n## 支持的搜索引擎\n\n### 🌐 国际引擎\n\n| 引擎 | 说明 | 适用场景 | 隐私 |\n|------|------|---------|------|\n| `google` | Google 搜索 | 综合搜索、技术文档、学术资源 | ❌ |\n| `google_hk` | 谷歌香港 | 简化版 Google，广告少 | ❌ |\n| `brave` | Brave Search | 隐私优先、新闻聚合、Discussions | ✅ |\n| `ddg` / `duckduckgo` | DuckDuckGo | 隐私搜索、Bangs 快捷跳转 | ✅ |\n| `bing` | Microsoft Bing | 微软生态、英文搜索 | ❌ |\n| `yahoo` | Yahoo Search | 新闻聚合、传统搜索用户 | ❌ |\n| `startpage` | Startpage | Google 结果 + 隐私保护 | ✅ |\n| `ecosia` | Ecosia（环保） | 环保搜索、植树公益 | ✅ |\n| `qwant` | Qwant（欧盟） | 欧盟推荐、不追踪用户 | ✅ |\n| `yandex` | Yandex（俄罗斯） | 俄语搜索、俄罗斯资源 | ❌ |\n| `mojeek` | Mojeek（独立索引） | 自有索引、隐私友好 | ✅ |\n\n### 🔬 专业知识引擎\n\n| 引擎 | 说明 | 适用场景 |\n|------|------|---------|\n| `wikipedia` | 维基百科 | 概念、术语、历史人物等百科查询 |\n| `wolframalpha` | 计算知识引擎 | 数学公式、统计数据、单位换算 |\n| `github` | GitHub 代码搜索 | 代码片段、开源项目、Issue 查询 |\n| `stackoverflow` | Stack Overflow | 编程问题、技术方案、错误排查 |\n\n### 🇨🇳 国内引擎（7个）\n\n| 引擎 | 说明 | 适用场景 |\n|------|------|---------|\n| `baidu` | 百度搜索 | 中文内容、百度系产品 |\n| `bing_cn` | 必应中国版 | 中文结果（ensearch=0） |\n| `bing_int` | 必应国际版 | 英文结果（ensearch=1） |\n| `360` | 360搜索 | 安全搜索、网址导航 |\n| `sogou` | 搜狗搜索 | 知乎/微信公众号 |\n| `wechat` | 微信搜索 | 公众号文章 |\n| `shenma` | 神马搜索 | 移动端内容、UC浏览器 |\n\n---\n\n## CLI 参数\n\n| 参数 | 说明 | 示例 |\n|------|------|------|\n| `-q, --query` | 搜索查询 | `-q \"python tutorial\"` |\n| `-e, --engines` | 引擎列表（逗号分隔） | `-e google,brave,baidu` |\n| `-m, --max-results` | 每引擎最大结果数 | `-m 10` |\n| `-t, --time` | 时间过滤 | `--time week` |\n| `-d, --domain` | 站点搜索 | `--domain github.com` |\n| `-r, --region` | 地区代码 | `-r us-en` |\n| `--lite` | 强制 DuckDuckGo Lite | `--lite` |\n| `--no-cache` | 禁用缓存 | `--no-cache` |\n| `--no-rank` | 禁用评分排序 | `--no-rank` |\n| `-o, --output` | 输出文件 | `-o results.json` |\n| `--json` | 紧凑 JSON 输出 | `--json` |\n| `--proxy, -pr` | 代理服务器 | `--proxy socks5h://127.0.0.1:9150` |\n| `--type` | 搜索类型 | `--type text` (默认) / `images` / `news` / `videos` / `books` |\n| `--timeout` | 单引擎超时秒数 | `--timeout 10` (默认 30) |\n| `--dht` | 启用 DHT 网络加速 | `--dht` |\n\n### 时间过滤值\n\n| 值 | 含义 | Google 参数 | Brave 参数 |\n|----|------|-------------|-----------|\n| `hour` | 最近 1 小时 | `qdr:h` | `ph` |\n| `day` | 最近 24 小时 | `qdr:d` | `pd` |\n| `week` | 最近 7 天 | `qdr:w` | `pw` |\n| `month` | 最近 30 天 | `qdr:m` | `pm` |\n| `year` | 最近 365 天 | `qdr:y` | `py` |\n\n---\n\n## 高级搜索技巧\n\n### Google 搜索操作符\n\n| 操作符 | 功能 | 示例 |\n|--------|------|------|\n| `\" \"` | 精确匹配 | `\"machine learning\"` |\n| `-` | 排除关键词 | `python -snake` |\n| `OR` | 或运算 | `machine OR deep learning` |\n| `site:` | 站内搜索 | `site:github.com python` |\n| `filetype:` | 文件类型 | `filetype:pdf annual report` |\n| `intitle:` | 标题包含 | `intitle:tutorial python` |\n| `inurl:` | URL 包含 | `inurl:login admin` |\n\n### Brave 特色搜索\n\n| 功能 | 说明 | 参数 |\n|------|------|------|\n| `Goggles` | 自定义搜索规则 | 创建个性化过滤器 |\n| `Discussions` | 论坛讨论聚合 | 搜索 Reddit 等论坛 |\n| `source=news` | 新闻搜索 | 独立新闻索引 |\n| `source=images` | 图片搜索 | 图片索引 |\n\n### DuckDuckGo Bangs\n\n| Bang | 跳转 | 示例 |\n|------|------|------|\n| `!g` | Google 搜索 | `!g python` |\n| `!gh` | GitHub | `!gh tensorflow` |\n| `!so` | Stack Overflow | `!so javascript` |\n| `!w` | Wikipedia | `!w AI` |\n| `!yt` | YouTube | `!yt tutorial` |\n\n---\n\n## 执行步骤（CLI 使用）\n\n根据不同搜索目标选择最佳引擎组合：\n\n| 搜索目标 | 首选引擎 | 原因 |\n|---------|---------|------|\n| **综合中文内容** | 百度 | 中文索引最全 |\n| **公众号文章** | 搜狗 + 微信 | 唯一支持公众号搜索 |\n| **知乎内容** | 搜狗 | 知乎优化好 |\n| **隐私优先** | Brave / DuckDuckGo / Startpage | 不追踪用户 |\n| **技术文档 / 编程** | Google + Stack Overflow | 技术文档全面 |\n| **GitHub 代码搜索** | GitHub 专用引擎 | 代码片段/开源项目最准 |\n| **实时新闻** | Brave News / Bing | 新闻聚合能力强 |\n| **编程问题排查** | Stack Overflow / Google | 错误方案最全 |\n| **学术资源** | Google + 百度学术 | 论文、学术搜索 |\n| **俄语 / 俄罗斯资源** | Yandex | 俄语区比 Google 更准 |\n| **环保公益搜索** | Ecosia | 搜索即植树 |\n| **计算型查询** | WolframAlpha | 数学/统计/单位换算 |\n| **百科知识** | Wikipedia | 概念、术语、历史人物 |\n| **图片搜索** | `ddgs images()` / Brave | 图片索引聚合 |\n| **视频搜索** | `ddgs videos()` | 视频结果聚合 |\n| **新闻搜索** | `ddgs news()` | 新闻聚合（支持时间过滤） |\n\n### 🇨🇳 国内引擎深度指南\n\n| 引擎 | 特色功能 | 搜索示例 |\n|------|---------|---------|\n| **百度** | 中文索引最全、百度学术、百度新闻 | `site:github.com python` / `filetype:pdf` |\n| **搜狗** | 知乎优化、微信公众号 | `site:zhihu.com 机器学习` |\n| **微信搜索** | 唯一公众号文章搜索渠道 | `https://wx.sogou.com/weixin?type=2&query=Python` |\n| **必应中国版** | 中英文结果切换（ensearch=0/1） | `https://cn.bing.com/search?q=AI&ensearch=0` |\n| **360搜索** | 安全搜索、网址导航 | 安全过滤默认开启 |\n| **神马搜索** | 移动端优化、UC浏览器集成 | `https://m.sm.cn/s?q=关键词` |\n\n### 🌐 国际引擎使用技巧\n\n| 引擎 | 特色技巧 | 示例 |\n|------|---------|------|\n| **Brave** | Discussions（论坛聚合）、News、图片搜索 | `source=news` / `Goggles 自定义规则` |\n| **DuckDuckGo** | Bangs 快捷跳转（!g / !gh / !so） | `!so python error` → 直接跳转 Stack Overflow |\n| **Startpage** | Anonymous View 匿名浏览、Google 结果 | 不调用 Google 但显示相同结果 |\n| **Ecosia** | 每约 45 次搜索种一棵树 | 环保主义者首选 |\n| **Qwant** | 欧盟官方推荐、不做个性化追踪 | 适合注重数据主权用户 |\n| **Yandex** | 俄语搜索、俄区内容 | 俄语学习、俄罗斯文化资源 |\n| **Mojeek** | 自有独立索引，不依赖 Google/Bing | 隐私激进用户的替代方案 |\n\n---\n\n## 架构\n\n```\n~/.openclaw/skills/multi-web-search/scripts/\n├── constants.py        # 16+ 引擎定义\n├── url_builder.py     # URL 构建\n├── cache_utils.py     # 结果缓存（TTL 1小时）\n├── result_scorer.py   # 结果评分排序\n├── search.py          # ✅ 唯一入口 (v3.4)\n└── install.py         # 安装脚本\n```\n\n---\n\n## 输出格式\n\n```json\n{\n  \"provider\": \"multi-engine\",\n  \"query\": \"python tutorial\",\n  \"engines\": [\"google\", \"brave\"],\n  \"search_type\": \"text\",\n  \"time_filter\": \"week\",\n  \"domain\": null,\n  \"results\": [\n    {\n      \"title\": \"Python Tutorial\",\n      \"url\": \"https://...\",\n      \"snippet\": \"...\",\n      \"source\": \"google\",\n      \"_score\": 85.3\n    }\n  ],\n  \"engine_results\": {...},\n  \"total_results\": 10,\n  \"unique_results\": 8,\n  \"ddgs_available\": true,\n  \"dht_enabled\": false,\n  \"proxy\": null\n}\n```\n\n### 输出字段说明\n\n| 字段 | 类型 | 说明 |\n|------|------|------|\n| `search_type` | string | 搜索类型：text/images/news/videos/books |\n| `dht_enabled` | bool | 是否启用 DHT 网络加速 |\n| `proxy` | string/null | 代理服务器地址 |\n| `engine_results` | dict | 各引擎的详细结果（包含 success/error/url） |\n\n---\n\n## 实现步骤\n\n调用此技能时，按以下步骤执行：\n\n### 1️⃣ 解析用户需求\n\n提取搜索请求中的关键参数：\n\n| 参数 | 来源 | 示例 |\n|------|------|------|\n| 查询内容 | 用户输入 | `\"python tutorial\"` |\n| 引擎选择 | `-e` 参数或推断 | `google,brave` |\n| 时间过滤 | `--time` 参数 | `week`、`month` |\n| 站点限制 | `--domain` 参数 | `github.com` |\n| 地区代码 | `-r` 参数 | `cn-zh`、`us-en` |\n| 搜索类型 | `--type` 参数 | `text`、`images`、`news`、`videos`、`books` |\n| 代理 | `--proxy/-pr` 参数 | `socks5h://127.0.0.1:9150` |\n| 超时 | `--timeout` 参数 | `10`（秒） |\n| DHT 加速 | `--dht` 参数 | 启用 P2P 缓存加速 |\n\n**引擎选择优先级：**\n- 用户明确指定 → 使用用户指定引擎\n- 中文内容 → 默认添加国内引擎（baidu / bing_cn）\n- 隐私优先 → Brave / DuckDuckGo / Startpage\n- 未指定 → 使用 DEFAULT_ENGINES = `[\"google\", \"brave\"]`\n\n**搜索类型选择：**\n- 文本搜索 → `text`（默认）\n- 图片搜索 → `images`（支持 size/color/type/layout/license 参数）\n- 新闻搜索 → `news`（支持时间过滤）\n- 视频搜索 → `videos`（支持 resolution/duration 参数）\n- 书籍搜索 → `books` |\n\n### 2️⃣ 执行搜索\n\n```bash\n# 文本搜索\npython3 search.py -q \"<query>\" -e <engines> [-t <time>] [-d <domain>] [-r <region>]\n\n# 图片搜索\npython3 search.py -q \"<query>\" --type images [-m 10] [--size Large] [--color Blue]\n\n# 新闻搜索\npython3 search.py -q \"<query>\" --type news --time week\n\n# 视频搜索\npython3 search.py -q \"<query>\" --type videos [--duration medium]\n\n# 书籍搜索\npython3 search.py -q \"<query>\" --type books\n\n# 代理 + 超时\npython3 search.py -q \"<query>\" --proxy socks5h://127.0.0.1:9150 --timeout 10\n\n# 启用 DHT 加速\npython3 search.py -q \"<query>\" --dht\n```\n\n**执行逻辑：**\n\n```\n如果 ddgs 可用:\n    → 使用 ddgs 多引擎并行搜索（支持 text/images/news/videos/books）\n    → 如果启用 DHT → 自动使用 DHT 网络缓存\n否则:\n    → 使用 DuckDuckGo Lite URL 生成\n    → 通过 web_fetch 获取结果\n```\n\n**降级策略：**\n- `ddgs` 不可用 → 自动降级到 DuckDuckGo Lite\n- 单引擎失败 → 继续返回其他引擎结果\n- 引擎不支持该搜索类型 → 返回错误提示支持的引擎\n- DHT 网络不可用 → 静默回退到普通缓存\n\n### 3️⃣ 处理结果\n\n**多引擎结果合并：**\n- 所有引擎结果合并到统一列表\n- 每个结果标注 `source` 字段（来源引擎）\n- 根据 `_score` 字段排序（仅 text 类型）\n\n**结果格式因搜索类型而异：**\n- `text`: `{title, url, snippet, source}`\n- `images`: `{title, url, image, thumbnail, width, height, source}`\n- `news`: `{title, url, snippet, published_date, source}`\n- `videos`: `{title, url, description, duration, embed_url, thumbnail, source}`\n- `books`: `{title, url, author, publisher, source}`\n\n**去重逻辑：**\n- URL 完全相同的结果只保留一个\n- 保留评分最高的那条\n- 不支持的引擎返回全部结果\n\n### 4️⃣ 错误处理\n\n| 错误场景 | 处理方式 |\n|---------|---------|\n| `ddgs` 未安装 | 降级到 DuckDuckGo Lite，无警告 |\n| 引擎不支持时间过滤 | 静默忽略，仅返回其他引擎结果 |\n| 引擎不支持该搜索类型 | 返回错误，提示支持的引擎列表 |\n| 网络超时 | 返回已获取的结果，不阻塞 |\n| 结果为空 | 建议换用其他引擎或重新表述 |\n| URL 编码错误 | 使用 `urllib.parse.quote()` 正确编码 |\n| DHT 网络不可用 | 静默回退到普通缓存 |\n| 代理连接失败 | 返回错误，提示检查代理配置 |\n\n### 5️⃣ 格式化输出\n\n**结果呈现：**\n- 标题加粗，显示 URL 链接\n- snippet 展示摘要内容\n- 标注来源引擎和相关性评分\n- 标注搜索类型（text/images/news/videos/books）\n\n**JSON 输出（`--json`）：**\n```json\n{\n  \"provider\": \"multi-engine\",\n  \"query\": \"python tutorial\",\n  \"engines\": [\"google\", \"brave\"],\n  \"search_type\": \"text\",\n  \"time_filter\": \"week\",\n  \"domain\": null,\n  \"results\": [\n    {\n      \"title\": \"Python Tutorial\",\n      \"url\": \"https://...\",\n      \"snippet\": \"...\",\n      \"source\": \"google\",\n      \"_score\": 85.3\n    }\n  ],\n  \"engine_results\": {...},\n  \"total_results\": 10,\n  \"unique_results\": 8,\n  \"ddgs_available\": true,\n  \"dht_enabled\": false,\n  \"proxy\": null\n}\n```\n\n**输出标志含义：**\n- `ddgs_available: true` → 使用 ddgs 并行搜索，速度更快\n- `ddgs_available: false` → 降级到 DuckDuckGo Lite\n- `dht_enabled: true` → 使用 DHT 网络加速（重复查询提速 90%%）\n- `proxy: <proxy_url>` → 使用代理服务器\n- `unique_results < total_results` → 有重复结果已去重\n\n---\n\n| 依赖 | 状态 | 说明 |\n|------|------|------|\n| python3 | 必须 | 运行环境 |\n| ddgs | 推荐 | 多引擎并行（pip install ddgs） |\n| ddgs[dht] | 可选 | DHT 网络加速（pip install ddgs[dht]） |\n\n无 ddgs 时，自动降级到 DuckDuckGo Lite URL 生成，使用 `web_fetch` 获取结果。\n\n---\n\n## 安全与隐私\n\n- **无需 API Key**：所有搜索基于免费工具\n- **零配置**：无需注册账号\n- **隐私友好引擎**：支持 Brave、DuckDuckGo、Startpage 等\n- **本地缓存**：仅存本地，无远程传输\n\n---\n\n*免费网页搜索技能，支持 16+ 引擎。*","tags":{"free":"3.4.0","latest":"3.4.0","multi-engine":"3.4.0","privacy":"3.4.0","web-search":"3.4.0"},"stats":{"comments":0,"downloads":543,"installsAllTime":0,"installsCurrent":0,"stars":1,"versions":1},"createdAt":1777731886595,"updatedAt":1778492830283},"latestVersion":{"version":"3.4.0","createdAt":1777731886595,"changelog":"Multi-Web-Search v3.4.0 – Major update with expanded search modalities and network enhancements.\n\n- Added support for image, news, video, and book searches (--type parameter).\n- Introduced DHT network acceleration for up to 90% faster repeated queries.\n- Integrated proxy support for private and region-unlocked searches.\n- New configurable per-engine timeout (--timeout).\n- Improved zero-config fallback (DuckDuckGo Lite) and enhanced multi-language/documentation search support.","license":"MIT-0"},"metadata":null,"owner":{"handle":"wangzairong","userId":"s176bzwbby3efc6tckjvf8n8jn83shnx","displayName":"wangzairong","image":"https://avatars.githubusercontent.com/u/23448989?v=4"},"moderation":null}