🎁 Get the FREE AI Skills Starter GuideSubscribe →
BytesAgainBytesAgain
🦀 ClawHub

media-search

by @liushilong-dodo

当用户需要写新闻、找素材、查背景、核实信息、了解事件来龙去脉,或者提到"查一下"、"搜一下"、"找找相关报道"、"有什么最新消息"时,或开展互联网线索数据挖掘、新闻选题策划、内容采编、监测竞品或特定信源动态等业务时,需要进行全网媒体稿件检索、查找事件背景、行业数据、政策动态、人物信息、历史脉络等,都应使用此技能

Versionv1.0.0
Downloads419
TERMINAL
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 Policyai 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目录下:
  • JSON输出文件需要手动指定完整路径,例如:sources/result.json
  • 清理策略

    生成的JSON文件应根据情况删除:
  • 需要删除时: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 脚本发生异常时:

  • 系统会在控制台显示具体的错误信息
  • 脚本会立即停止执行并返回错误代码
  • 用户可根据显示的错误信息进行相应的故障排除
  • 常见异常情况:

  • API密钥配置缺失或无效
  • JSON输入格式错误
  • 网络连接问题
  • 参数验证失败
  • 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-console

    2. Search and save to file

    python3 search.py --json-input '{"keywords": "关键词"}' --output-file results.json

    3. 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

  • API Error: 检查环境变量 NEWS_BIGDATA_API_KEYNEWS_BIGDATA_API_SECRET
  • JSON Parse Error: 验证JSON格式正确性
  • No Results: 尝试调整关键词或时间范围
  • Permission Error: 确保有写入sources文件夹的权限
  • 💡 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

  • API Error: 检查环境变量 NEWS_BIGDATA_API_KEYNEWS_BIGDATA_API_SECRET
  • JSON Parse Error: 验证JSON格式正确性
  • No Results: 尝试调整关键词或时间范围
  • Permission Error: 确保有写入sources文件夹的权限