daily-news-summarizer
每日新闻摘要生成器
Overview
此技能使用浏览器自动化(Playwright MCP工具)访问新闻网站,智能提取当日重要新闻并生成详细摘要。每个新闻条目包含3-5句话的AI摘要,最终输出为格式化的Markdown报告。
工作流程
第1步:确定新闻源
首先检查用户指定的新闻源。如果用户未指定,使用以下默认源:
中文新闻网站:
- 新浪新闻: https://news.sina.com.cn
- 网易新闻: https://news.163.com
- 腾讯新闻: https://news.qq.com
- 搜狐新闻: https://news.sohu.com
国际新闻网站:
- BBC News: https://www.bbc.com/news
- Reuters: https://www.reuters.com
- CNN: https://edition.cnn.com
科技新闻:
- 36氪: https://36kr.com
- 虎嗅: https://www.huxiu.com
如果用户有自定义配置文件 ~/.daily-news-config.yaml,优先使用其中的配置。
第2步:访问新闻网站
使用Playwright MCP工具访问每个新闻源:
# 使用browser_navigate工具导航到网站
mcp__playwright__browser_navigate(url="https://news.sina.com.cn")
然后获取页面快照:
# 使用browser_snapshot获取页面可访问性快照
mcp__playwright__browser_snapshot()
第3步:提取新闻列表
从页面快照中分析并提取新闻条目。查找以下元素:
- 标题(headline/title)
- 链接(URL)
- 简短描述(description/excerpt,如果有)
- 时间信息(publish time,如果有)
提取策略:
- 识别新闻列表区域(通常是包含多个文章链接的区域)
- 提取每条新闻的标题和链接
- 最多提取20条重要新闻
- 去除重复和广告内容
示例代码模式:
# 从快照中分析新闻链接
news_links = []
for item in snapshot:
if '标题' in item or 'title' in str(item).lower():
# 提取标题和链接
news_links.append({
'title': extract_title(item),
'url': extract_url(item)
})
第4步:访问具体新闻文章
对于提取的重要新闻(前10-15条),逐个访问完整文章页面:
# 导航到文章页面
mcp__playwright__browser_navigate(url=news_url)
# 获取文章内容快照
mcp__playwright__browser_snapshot()
从文章页面提取:
- 完整标题
- 正文内容
- 发布时间
- 作者信息(如果有)
第5步:生成AI摘要
为每篇文章生成3-5句话的详细摘要:
摘要要求:
- 准确概括文章核心内容
- 包含关键事实和细节(时间、地点、人物、事件)
- 客观中立,不添加个人观点
- 使用简洁明了的中文语言
- 总共3-5句话,每句话信息量丰富
提示词模板:
请为以下新闻文章生成一个5句话的详细摘要。
标题:{title}
文章内容:
{content}
摘要要求:
1. 准确概括文章的核心内容
2. 包含关键事实和细节
3. 客观中立,不添加个人观点
4. 使用简洁明了的语言
5. 总共5句话,每句话信息量丰富
请生成摘要:
第6步:生成总体概述
在所有文章摘要生成后,生成一个当日新闻总体概述(3-5句话):
提示词模板:
请为以下{count}条新闻生成一个总体概述(3-5句话),突出当日最重要的新闻主题和趋势:
新闻标题列表:
{titles}
请生成一个简短的总体概述:
第7步:生成Markdown报告
将所有内容整理成格式化的Markdown文件:
# 每日新闻摘要
**日期**: 2024年01月07日
**生成时间**: 08:00
**新闻数量**: 15条
## 📰 今日概述
今日要闻的总体概述,3-5句话总结当日最重要的新闻主题...
## 📋 详细新闻
### 1. 新闻标题
**发布时间**: 2024-01-07 10:30
**来源**: [新浪新闻](https://example.com/article)
**摘要**: 第一句话摘要。第二句话摘要。第三句话摘要。第四句话摘要。第五句话摘要,包含关键细节。
---
### 2. 另一条新闻标题
**发布时间**: 2024-01-07 09:15
**来源**: [网易新闻](https://example.com/article2)
**摘要**: 摘要内容...
---
## 统计信息
- **总新闻数**: 15
- **新闻源**: 新浪新闻、网易新闻、BBC News
- **类别**: 时政、财经、科技、国际
*本摘要由AI自动生成,内容来源于各大新闻网站*
第8步:保存文件
将生成的Markdown保存到文件。默认位置:
- 目录:
~/Daily-News-Summary/ - 文件名:
news-summary-{date}.md(例如:news-summary-2024-01-07.md)
使用Write工具保存:
Write(file_path="~/Daily-News-Summary/news-summary-2024-01-07.md", content=markdown_content)
处理特殊场景
场景1:用户询问特定主题的新闻
如果用户说"今天有什么科技新闻?"或"政治方面的新闻":
- 在提取新闻时进行过滤,只保留相关主题
- 或者在访问时直接导航到对应的分类页面
场景2:用户指定新闻网站
如果用户说"总结BBC今天的新闻"或"只看新浪新闻":
- 只访问用户指定的新闻源
- 跳过其他默认源
场景3:快速摘要模式
如果用户说"简单总结一下"或"快速浏览":
- 每篇文章只生成1-2句话摘要
- 减少文章数量(5-10条)
- 生成更简洁的总体概述
场景4:详细模式
如果用户说"详细总结"或"完整报告":
- 每篇文章生成5-7句话摘要
- 增加文章数量(15-20条)
- 为每篇文章添加更多细节(引用、数据等)
最佳实践
-
并行处理: 可以同时打开多个浏览器标签页访问不同新闻源,使用
mcp__playwright__browser_tabs(action="new")创建新标签 -
错误处理: 如果某个网站无法访问,继续处理其他网站,并在最终报告中注明
-
去重: 不同新闻源可能报道同一事件,需要识别并合并重复新闻
-
优先级排序: 将重要新闻(时政、重大事件)放在前面
-
时间信息: 尽可能保留新闻的发布时间,并按时间倒序排列
-
资源清理: 任务完成后使用
mcp__playwright__browser_close()关闭浏览器
调试和日志
在执行过程中,向用户报告进度:
✓ 正在访问新浪新闻...
✓ 已提取20条新闻
✓ 正在生成摘要 (1/20)...
✓ 正在生成摘要 (2/20)...
...
✓ 生成总体概述...
✓ 摘要已保存到 ~/Daily-News-Summary/news-summary-2024-01-07.md
配置文件(可选)
如果用户创建了 ~/.daily-news-config.yaml,读取其配置:
news_sources:
- name: "新浪新闻"
url: "https://news.sina.com.cn"
enabled: true
language: "zh"
- name: "BBC News"
url: "https://www.bbc.com/news"
enabled: true
language: "en"
output:
directory: "~/Daily-News-Summary"
format: "markdown"
summary:
max_articles: 20
sentences_per_article: 5
使用Read工具读取配置:
Read(file_path="~/.daily-news-config.yaml")
完整示例对话
用户: 总结今天的新闻
Claude:
- 访问新浪新闻首页
- 访问网易新闻首页
- 访问BBC News首页
- 提取重要新闻列表
- 逐个访问新闻文章页面
- 生成每篇文章的详细摘要
- 生成总体概述
- 保存到 ~/Daily-News-Summary/news-summary-2024-01-07.md
✅ 已完成!共处理15条新闻,摘要已保存。