Sports News 是一个通过 RSS/Atom 订阅源和 Google News 获取体育新闻的技能,属于 machina-sports/sports-skills。它可用于抓取新闻头条、按查询词搜索、按日期过滤,覆盖足球新闻、转会传闻、比赛报道及其他体育内容。
用途
该技能面向体育新闻的检索与聚合,主要解决按主题、时间范围获取新闻的需求,例如查询某支球队的转会新闻、某一赛事的近期报道,或抓取特定站点的体育 RSS 订阅源。
主要能力
提供两个命令:
-
fetch_feed:按 URL 抓取 RSS/Atom 订阅源。必填参数为 url,无必填的可选参数。示例:
sports-skills news fetch_feed --url="https://feeds.bbci.co.uk/sport/football/rss.xml" -
fetch_items:从 Google News 或 RSS 源获取新闻。可选参数包括 google_news、query、url、limit、after、before、sort_by_date。示例:
sports-skills news fetch_items --google_news --query="Arsenal transfer" --limit=5
使用方式
技能提供两种调用方式,推荐使用 CLI 以避免 Python 导入路径问题:
CLI:
sports-skills news fetch_items --google_news --query="Arsenal transfer" --limit=5
sports-skills news fetch_feed --url="https://feeds.bbci.co.uk/sport/football/rss.xml"
Python SDK(替代方式):
from sports_skills import news
articles = news.fetch_items(google_news=True, query="Arsenal transfer news", limit=10)
feed = news.fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml")
在编写查询前,应查阅 references/api-reference.md 了解命令参数,查阅 references/rss-feeds.md 获取精选订阅源 URL。
查询前必查事项
- 日期需从系统提示的当前日期(currentDate)推导,不得硬编码。
- google_news=True 必须与 query 参数成对使用。
- 任何“近期”或“最新”的查询都应设置 sort_by_date=True。
日期选择规则
从系统提示的日期推导当前日期(例如 currentDate: 2026-02-16 表示今天是 2026-02-16)。
- “本周”:after = 今天减去 7 天
- “近期”或“最新”:after = 今天减去 3 天
- 指定日期范围:按原样使用
工作流示例
- 突发新闻检查:
fetch_items --google_news --query="<topic>" --limit=5 --sort_by_date=True,展示标题、来源和日期。 - 主题深入:
fetch_items --google_news --query="<topic>" --after=<7_days_ago> --sort_by_date=True --limit=10;如需精选来源,可同时尝试fetch_feed --url="<rss_url>",交叉比对以获得全面覆盖。 - 每周体育综述:对关注的每项运动执行
fetch_items --google_news --query="<sport> results" --after=<7_days_ago> --limit=5,按运动汇总展示。
使用示例
- 转会新闻搜索:派生 after 为今天减 3 天,调用 fetch_items(google_news=True, query="Arsenal transfer news", after=<derived_date>, sort_by_date=True, limit=10),返回含来源、日期和链接的近期阿森纳转会标题。
- 精选 RSS 源:调用 fetch_feed(url="https://feeds.bbci.co.uk/sport/football/rss.xml"),返回该源的标题、最后更新时间和近期文章。
- 日期过滤新闻:派生 after 为今天减 7 天,调用 fetch_items(google_news=True, query="Champions League", after=<derived_date>, sort_by_date=True, limit=10),返回最近 7 天的相关文章,按最新排序。
限制与注意事项
- 不存在的命令:get_news、search_news、get_headlines 均不存在,不可调用;RSS 使用 fetch_feed,Google News 搜索使用带 google_news=True 和 query 参数的 fetch_items。
- 若命令不在上述命令表中,即表示不存在。
故障排查
- Google News 返回空结果:可能是缺少 query、query 过窄或未设置 google_news=True。解决:确保同时设置 google_news=True 和 query,尝试更宽泛的关键词(如用 "Arsenal" 而非 "Arsenal vs Chelsea goal")。
- RSS 源返回错误:源 URL 可能临时不可用或格式已更改。解决:用 Google News(fetch_items 搭配 google_news=True)作为同主题的备选。
- 使用“近期”查询却返回旧文章:可能未设置 sort_by_date=True,或缺少 after 日期过滤。解决:添加 sort_by_date=True 和 after=<今天减 3 天>,确保最新文章排在前。
该技能的收费、价格、平台与具体效果信息暂未提供。