# aggregated-search **Repository Path**: pythonxueba/aggregated-search ## Basic Information - **Project Name**: aggregated-search - **Description**: 聚合搜索技能 - 整合 Bing、百度、微信搜索,提供统一搜索接口 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-02 - **Last Updated**: 2026-02-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 聚合搜索技能 - Claude Code 插件 这是完整的聚合搜索技能,整合了 Bing、百度、微信三个搜索引擎,提供统一的搜索接口。 ## 功能特性 ### 🚀 核心功能 1. **多引擎搜索** - Bing 网页搜索 - 百度新闻搜索 - 微信文章搜索 - 支持多页搜索 2. **聚合搜索** - 同时在所有引擎搜索 - 统一结果格式 - 分引擎展示 - 完整 JSON 输出 3. **结果处理** - 格式化文本输出 - JSON 结构化存储 - 自动保存结果文件 - 支持自定义输出 ### 📊 支持的搜索引擎 #### 1. Bing 搜索 - **类型**: 网页搜索 - **功能**: - 支持重定向 URL 解析 - 多页搜索 - 真实链接提取 - 描述提取 #### 2. 微信搜索 - **类型**: 文章搜索 - **功能**: - 公众号文章搜索 - 搜狗微信搜索接口 - 文章标题和链接 - 多页结果获取 ## 目录结构 ``` aggregated-search-skill/ ├── skill.json # Claude Code 技能清单 ├── README.md # 说明文档(本文件) ├── aggregated_search.py # 主程序 └── examples.py # 使用示例 ``` ## 使用方法 ### 方法 1: 命令行运行 ```bash python3 aggregated_search.py ``` 运行后提示: ``` 请输入搜索关键词:Python 请选择搜索模式: 1. 聚合搜索(所有引擎) 2. 仅 Bing 搜索 3. 仅百度搜索 4. 仅微信搜索 请选择(1-4,默认为1): ``` ### 方法 2: 作为 Claude Code 技能 #### 聚合搜索所有引擎 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() results = skill.search_all("Python", pages=2) # 返回结果包含: # - keyword: 搜索关键词 # - total_results: 总结果数 # - engines: 各引擎结果(Bing、百度、微信) # - aggregated: 所有聚合结果 ``` #### 仅 Bing 搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() bing_results = skill.search_bing("Python", pages=2) # 返回: # - engine: 'Bing' # - keyword: 搜索关键词 # - count: 结果数量 # - results: Bing 搜索结果列表 ``` #### 仅百度搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() baidu_results = skill.search_baidu("AI", pages=2) # 返回: # - engine: '百度' # - keyword: 搜索关键词 # - count: 结果数量 # - results: 百度搜索结果列表 ``` #### 仅微信搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() weixin_results = skill.search_weixin("人工智能", pages=1) # 返回: # - engine: '微信' # - keyword: 搜索关键词 # - count: 结果数量 # - results: 微信搜索结果列表 ``` #### 格式化输出结果 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() results = skill.search_all("Python") formatted = skill.format_results(results) print(formatted) ``` #### 保存搜索结果 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() results = skill.search_all("Python") skill.save_results(results, "my_search.json") # 保存到 my_search.json ``` ### 方法 3: 查看示例 ```bash python3 examples.py ``` ## API 接口说明 ### AggregatedSearchSkill 类 #### 初始化 ```python skill = AggregatedSearchSkill() ``` 初始化会自动创建三个搜索引擎实例。 #### 方法列表 ##### 1. `get_skill_info() -> Dict` 返回技能的元数据信息。 **返回值:** - `name`: 技能名称 - `version`: 技能版本 - `description`: 技能描述 - `author`: 作者 - `capabilities`: 技能能力列表 ##### 2. `search_all(keyword: str, pages: int = 2) -> Dict` 在所有搜索引擎中搜索并聚合结果。 **参数:** - `keyword`: 搜索关键词 - `pages`: 每个搜索引擎的搜索页数(默认 2) **返回值:** - `keyword`: 搜索关键词 - `total_results`: 总结果数 - `engines`: 各引擎搜索结果 - `Bing`: Bing 结果(count + results) - `百度`: 百度结果(count + results) - `微信`: 微信结果(count + results) - `aggregated`: 所有聚合结果列表 ##### 3. `search_bing(keyword: str, pages: int = 2) -> Dict` 仅在 Bing 搜索。 **参数:** - `keyword`: 搜索关键词 - `pages`: 搜索页数 **返回值:** - `engine`: 'Bing' - `keyword`: 搜索关键词 - `count`: 结果数量 - `results`: Bing 搜索结果列表 ##### 4. `search_baidu(keyword: str, pages: int = 2) -> Dict` 仅在百度搜索。 **参数:** - `keyword`: 搜索关键词 - `pages`: 搜索页数 **返回值:** - `engine`: '百度' - `keyword`: 搜索关键词 - `count`: 结果数量 - `results`: 百度搜索结果列表 ##### 5. `search_weixin(keyword: str, pages: int = 2) -> Dict` 仅在微信搜索。 **参数:** - `keyword`: 搜索关键词 - `pages`: 搜索页数 **返回值:** - `engine`: '微信' - `keyword`: 搜索关键词 - `count`: 结果数量 - `results`: 微信搜索结果列表 ##### 6. `format_results(results: Dict) -> str` 格式化搜索结果输出。 **参数:** - `results`: 搜索结果字典 **返回值:** 格式化的字符串 ##### 7. `save_results(results: Dict, filename: str = "aggregated_search_results.json")` 保存搜索结果到 JSON 文件。 **参数:** - `results`: 搜索结果字典 - `filename`: 保存的文件名 ## 搜索结果格式 ### 单引擎结果格式 ```json { "engine": "Bing", "keyword": "Python", "count": 10, "results": [ { "engine": "Bing", "serial_number": 1, "page": 1, "title": "搜索结果标题", "url": "https://...", "description": "结果描述" } ] } ``` ### 聚合结果格式 ```json { "keyword": "Python", "total_results": 30, "engines": { "Bing": { "count": 10, "results": [...] }, "百度": { "count": 10, "results": [...] }, "微信": { "count": 10, "results": [...] } }, "aggregated": [...] } ``` ## 使用示例 ### 示例 1: 聚合搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() results = skill.search_all("人工智能", pages=2) # 查看各引擎结果数 for engine_name, engine_data in results['engines'].items(): print(f"{engine_name}: {engine_data['count']} 条结果") # 查看总结果 print(f"总结果: {results['total_results']} 条") # 保存结果 skill.save_results(results) ``` ### 示例 2: 单引擎搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() # 仅搜索 Bing bing_results = skill.search_bing("Python", pages=3) print(f"Bing 找到 {bing_results['count']} 条结果") # 仅搜索微信 weixin_results = skill.search_weixin("Python 教程", pages=1) print(f"微信找到 {weixin_results['count']} 条结果") ``` ### 示例 3: 批量搜索 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() keywords = ["Python", "JavaScript", "Go", "Rust"] for keyword in keywords: results = skill.search_all(keyword) filename = f"search_{keyword}.json" skill.save_results(results, filename) print(f"{keyword} 搜索结果已保存到 {filename}") ``` ### 示例 4: 自定义页数 ```python from aggregated_search import AggregatedSearchSkill skill = AggregatedSearchSkill() # 搜索 5 页的结果 results = skill.search_all("AI", pages=5) print(f"总共搜索了 {results['total_results']} 条结果") ``` ## 技术细节 ### 请求处理 - **超时设置**: 默认 10 秒 - **请求头**: 模拟真实浏览器 - **错误处理**: 完善的异常捕获 ### 结果限制 - **每引擎最大结果**: 10 条 - **默认搜索页数**: 2 页 - **结果总数**: 根据配置动态调整 ### URL 处理 - **Bing**: 自动解析重定向,获取真实 URL - **百度**: 直接提取原始链接 - **微信**: 搜狗微信搜索链接,自动补全域名 ## 依赖项 - Python >= 3.7 - requests >= 2.28.0 - beautifulsoup4 >= 4.12.0 安装依赖: ```bash pip install requests beautifulsoup4 ``` ## 性能特点 - ✅ 并发搜索设计 - ✅ 请求限速避免被封 - ✅ 智能重试机制 - ✅ 内存优化 - ✅ 结果缓存 ## 许可证 MIT License ## 作者 pythonxueba ## 反馈与支持 如有问题或建议,请访问: https://gitee.com/pythonxueba/aggregated-search-skill ## 更新日志 ### v1.0.0 (2024-02-02) - ✨ 初始版本发布 - ✨ 整合 Bing、百度、微信搜索 - ✨ 支持聚合搜索模式 - ✨ 支持单引擎搜索 - ✨ 统一结果格式 - ✨ JSON 输出和保存 - ✨ Claude Code 技能接口 - ✨ 完整的使用示例