media-search
by @liushilong-dodo
当用户需要写新闻、找素材、查背景、核实信息、了解事件来龙去脉,或者提到"查一下"、"搜一下"、"找找相关报道"、"有什么最新消息"时,或开展互联网线索数据挖掘、新闻选题策划、内容采编、监测竞品或特定信源动态等业务时,需要进行全网媒体稿件检索、查找事件背景、行业数据、政策动态、人物信息、历史脉络等,都应使用此技能
clawhub install media-search📖 About This Skill
name: media-search description: 当用户需要写新闻、找素材、查背景、核实信息、了解事件来龙去脉,或者提到"查一下"、"搜一下"、"找找相关报道"、"有什么最新消息"时,或开展互联网线索数据挖掘、新闻选题策划、内容采编、监测竞品或特定信源动态等业务时,需要进行全网媒体稿件检索、查找事件背景、行业数据、政策动态、人物信息、历史脉络等,都应使用此技能
Media Search Tool
媒体库搜索工具技能,用于通过 search.py 脚本搜索媒体内容。
Usage
python3 search.py --json-input '{"keywords": "搜索关键词", "limit": 10}' [--output-file results.json] [--output-console]
Parameters
Required Arguments
--json-input: JSON格式的搜索参数Search Parameters (JSON Input)
| 参数名 | 类型 | 默认值 | 可选值/格式 | 必填 | 说明 | | -------------------- | ----------------- | ------- | -------------------------------------------- | --- | --------------------------------------- | |keywords | string | 无 | 多个关键词用空格分隔 | 是 | 用户输入的搜索主题(如“乡村振兴 最新政策”),系统会自动拆分关键词提升召回率 |
| keyword_position | string | 标题或正文 | 仅标题、仅正文、标题或正文 | 否 | 指定关键词匹配位置 |
| publish_time_start | string (datetime) | 见规则 | yyyy-MM-dd HH:mm:ss | 否 | 发布时间开始时间,支持模糊时间词(见下) |
| publish_time_end | string (datetime) | 当前时间 | yyyy-MM-dd HH:mm:ss | 否 | 发布时间结束时间 |
| data_type | string | 全部 | news,app,weibo,wechat,wemedia,epaper(逗号分隔) | 否 | 数据来源类型 |
| source_name | string | 全部信源 | 任意信源名称 | 否 | 指定媒体来源(支持模糊匹配) 如“人民日报”、“新华社”、“澎湃新闻” |
| limit | integer | 10 | 1 ~ 50 | 否 | 返回结果数量 |keywords 拆分规则
用于对用户输入的 keywords 进行智能拆分与规范化处理,以提升检索召回率与相关性。
#### 一、基础拆分规则
1. 按空格拆分
- 输入:乡村振兴 最新政策
- 输出:["乡村振兴", "最新政策"]
2. 去除多余空格 - 自动去除首尾空格及重复空格
3. 大小写统一(英文)
- 全部转为小写(如:AI Policy → ai policy)
#### 二、分词增强规则
1. 中文分词(语义切分)
- 输入:人工智能发展
- 输出:["人工智能", "发展"]
2. 中英文混合拆分
- 输入:AI发展趋势
- 输出:["ai", "发展", "趋势"]
3. 数字与单位拆分
- 输入:5G产业
- 输出:["5g", "产业"]
#### 三、停用词过滤 系统可过滤无意义词:的、了、和、是、在、与、及、以及、相关、方面、情况
自然语言时间解析规则
用于从用户输入(关键词 / 对话文本)中识别时间表达,并转换为标准时间范围(publish_time_start / publish_time_end)。
#### 模糊时间关键词
| 关键词 | 转换规则 |
|--------|----------|
| 最新 / 实时 | 当前时间 - 24 小时 |
| 近期 / 最近 | 当前时间 - 3 天 |
#### 相对时间表达
| 表达 | 转换规则 | |------|----------| | 最近1天 / 过去1天 | 当前时间 - 1 天 | | 最近3天 | 当前时间 - 3 天 | | 最近7天 / 最近一周 | 当前时间 - 7 天 | | 最近1个月 | 当前时间 - 30 天 | | 最近3个月 | 当前时间 - 90 天 |
#### 自然时间表达
| 表达 | 转换规则 | |------|----------| | 今天 | 当天 00:00:00 ~ 当前时间 | | 昨天 | 昨天 00:00:00 ~ 23:59:59 | | 前天 | 前天 00:00:00 ~ 23:59:59 | | 本周 | 本周一 00:00:00 ~ 当前时间 | | 上周 | 上周一 00:00:00 ~ 上周日 23:59:59 | | 本月 | 本月1号 00:00:00 ~ 当前时间 | | 上月 | 上月1号 00:00:00 ~ 上月最后一天 23:59:59 | | 今年 | 当年 01-01 00:00:00 ~ 当前时间 | | 去年 | 去年 01-01 00:00:00 ~ 12-31 23:59:59 |
#### 默认时间规则
当用户未提供任何时间信息时: publish_time_start = 当前时间 - 90 天 publish_time_end = 当前时间
#### 解析规则说明
1. 所有“当前时间”均指系统当前时间(now)
2. 时间范围统一输出格式:yyyy-MM-dd HH:mm:ss
Output Arguments
--output-file (string, optional): 将结果保存到指定JSON文件--output-console (flag, optional): 强制输出到控制台Output Storage
1. JSON Output File
当指定--output-file 时保存为JSON格式:
{
"total": 100,
"fallback_to_web": false,
"items": [
{
"title": "文章标题",
"summary": "文章摘要",
"source_name": "信源名称",
"data_type": "news",
"url": "https://example.com"
}
]
}
2. Console Output
格式化文本输出到控制台,包含:生成文件管理
默认生成位置
默认情况下,所有生成的文件保存在当前SKILL目录下:sources/result.json清理策略
生成的JSON文件应根据情况删除:示例清理流程:
# 生成结果到指定目录
python3 search.py --json-input '{"keywords": "test"}' --output-file sources/result.json使用结果后,如不再需要则清理
rm sources/result.json # 删除临时JSON文件
Examples
Basic Search
python3 search.py --json-input '{"keywords": "人工智能 政策", "limit": 20}'
Search with Source Filter
python3 search.py --json-input '{"keywords": "乡村振兴", "limit": 10}'
Search with Time Range
python3 search.py --json-input '{
"keywords": "人民日报 一带一路",
"source_name": "人民日报",
"publish_time_start": "2026-03-25 00:00:00",
"publish_time_end": "2026-04-01 17:02:28"
}'
Save to JSON File
python3 search.py --json-input '{"keywords": "经济 发展"}' --output-file results.json
Console Output Only
python3 search.py --json-input '{"keywords": "科技创新"}' --output-console
Environment Requirements
需要配置API密钥环境变量:
NEWS_BIGDATA_API_KEY: API密钥NEWS_BIGDATA_API_SECRET: API密钥密钥脚本异常处理
当运行 search.py 脚本发生异常时:
常见异常情况:
Integration Notes
1. Auto-save: 所有搜索结果自动保存到sources文件夹 2. Multi-format: 支持JSON文件、控制台、Markdown三种输出 3. Parameter validation: 自动验证参数范围和必填项 4. Logging: 详细的操作日志输出到控制台
Dependencies
scripts/media_search.py: 核心搜索引擎scripts/SearchParameters: 搜索参数模型scripts/MediaSearchEngine: 媒体搜索引擎类Workflow Integration
Basic Search Workflow
# 1. Search and view results in console
python3 search.py --json-input '{"keywords": "关键词"}' --output-console2. Search and save to file
python3 search.py --json-input '{"keywords": "关键词"}' --output-file results.json3. Search with filters
python3 search.py --json-input '{
"keywords": "关键词",
"limit": 20
}'
Advanced Usage
# Search with multiple criteria
python3 search.py --json-input '{
"keywords": "人工智能 机器学习",
"keyword_position": "标题或正文",
"source_name": "科技日报",
"limit": 30
}' --output-file ai_research.json
Troubleshooting
NEWS_BIGDATA_API_KEY 和 NEWS_BIGDATA_API_SECRET💡 Examples
Basic Search
python3 search.py --json-input '{"keywords": "人工智能 政策", "limit": 20}'
Search with Source Filter
python3 search.py --json-input '{"keywords": "乡村振兴", "limit": 10}'
Search with Time Range
python3 search.py --json-input '{
"keywords": "人民日报 一带一路",
"source_name": "人民日报",
"publish_time_start": "2026-03-25 00:00:00",
"publish_time_end": "2026-04-01 17:02:28"
}'
Save to JSON File
python3 search.py --json-input '{"keywords": "经济 发展"}' --output-file results.json
Console Output Only
python3 search.py --json-input '{"keywords": "科技创新"}' --output-console
📋 Tips & Best Practices
NEWS_BIGDATA_API_KEY 和 NEWS_BIGDATA_API_SECRET