本文介绍如何使用 N8N 打造自己的新闻聚合器:
- • 构建自己的新闻源
- • 抓取新闻
- • 按照格式整理新闻
- • 使用存储
- • 飞书通知
- • 企微通知
- • 其他通知方式
安装运行
安装运行可以参考官方文档或者我之前的文章:
- • 《N8N 流程自动化 - 用 N8N + AI 打造自动化日程管理》
新闻来源
如果我们有经常阅读的网站,如果没有的话我们可以网上搜一下 RSS 新闻来源,就会有很多文章分享自己常用的新闻网站。
比如:
大家记住 RSS 地址不是来给我们阅读的,打开是一个 XML,比如这样:

我们选取一些自己喜欢的网站即可,整理记录成如下格式:
[
"https://www.theverge.com/rss/index.xml",
"https://www.wired.com/feed/rss",
"https://techcrunch.com/feed/"
]
N8n 流程
设置RSS源
首先新建一个空流程, 添加 Edit Fileds 节点用来记录我们的新闻网站来源,
添加 Edit Fileds 节点
新增一个字段,
- • 设置名称为
rss,
- • 选择类型为
Array,
- • 值填写我们整理的 RSS 地址集合:
[ "https://www.theverge.com/rss/index.xml", "https://www.wired.com/feed/rss", "https://techcrunch.com/feed/"]
效果如下:

新增字段
点击上面的 Test step 按钮,测试当前流程,

测试当前流程
执行成功可以看到右侧执行成功的标志,以及执行结果。
切分数据
关闭弹窗,再次搜索添加一个 Split out 节点:

搜索添加 Split out 节点
Split outSplit out 节点是指多个 RSS 站点拆分,每个站点分别执行后面逻辑。
字段填写上一步命名的 rss,点击测试查看节点执行结果如下:

填写上一步命名的 rss 点击测试
读取新闻
搜索添加 RSS Read 节点,
- • URL 字段类型选择
Expression
- • 值填写表达式:
{{ $json.rss }}

RSS Read 节点
点击测试,等一会就可以看到新闻结果,等待的时间长短和你的网络以及前面配置的 RSS 站点数量有关:

RSS 结果
可以看到右侧有几十条新闻数据。
设置新闻格式
再添加一个 Edit Fields 字段,只处理我们需要的字段:
- • 标题
title->{{ $json.title }}
- • 内容
content->{{ $json['content:encodedSnippet'] ?? $json.contentSnippet}}
- • 时间
date->{{ $json.isoDate}}
- • 链接
link->{{ $json.link }}

只处理我们需要的字段
存储
下面我们添加一个节点来把读取到的文章存储到向量数据库里面。
先搜索 Simple Vector Store,点击然后选择 Add documents to vector store 添加节点:
- • 修改节点名称为 存储文章
- •
Memory key设置为 news_store_key

接下来设置节点参数,点击 Embedding 搜索 Embeddings OpenAI 添加一个嵌入节点,我们使用阿里云的嵌入模型配置:
- • Credential 选择上次我们创建的
Qwen
- • Model 使用 Expression 填写
text-embedding-v3
- • 选项 Option 填写
1024
- • 选项 Batch size 填写
10(阿里云的嵌入批大小要小于10)

Embedding 配置
然后文档处选择 Default data loader:

进行如下配置:
- • 加载指定数据:Mode 选择
Load Specific Data
- • 使用 Markdown 格式数据:
Data填写:
# {{ $json.title }}
{{ $json.content }}
- • 添加元数据以便于我们检索
- • title:
{{ $json.title }}
- • createDate:
{{ $now.toISO() }}
- • publishDate:
{{ $json.date }}
- • link:
{{ $json.link }}

数据加载配置
配置切分器
点击切分器配置选择 Recursive Character Text Splitter,一篇文章进行一次切片。

配置切分参数:
- • Chunk Size:
3000设置 3000 个字符一个片段,当然也可以更大。
- • Chunk Overlap:
0设置每个片段都不重叠
测试流程
点击测试来测试当前流程,确保流程执行正确。

使用定时任务
现在我们的流程需要手动执行,下面我们把手动触发改成每天定时触发。
搜索添加一个 Schedule Trigger:

设置每天晚上执行一次(时间也可以选择固定的时间,比如早上7点30分):

替换掉原来的触发节点就可以了:

设置发送流程
我们接下来配置一个发送流程来发送新闻摘要。
搜索添加一个 Schedule Trigger,来执行每天给我们发送日报。
我们也可以使用一个流程完成所有的任务,新建流程可以实现读取数据频率和发送通知不同的场景。 比如每个小时查询一次,每天发送一次。或者每天发送一次日报,每周发送一次周报。
设置主题
添加一个 Edit Fields 节点来设置我们关心的主题:
- • Interests:
AI, technology
- • Number of news items to include:
15
设置 AI 和技术主题,新闻数量设置成15.

添加 Agent
添加一个 AI Agent 节点,命名为新闻阅读 AI。提示词来源设置为 Define below , 配置用户提示词如下:
总结最近7天发布最相关的科技新闻。今天是 {{ $now }}
配置系统提示词如下:
请用清晰、简洁且易于理解的英语撰写,仿佛是在策划每周的科技新闻通讯。
优先考虑与以下主题相关的故事:{{ $json.Interests }}。如果这些主题不存在,请选择本周最具影响力、广泛报道和值得注意的科技事件。
对于每个新闻项目:
- 提供简短的信息摘要(最多 1–3 句话)
- 包括文章标题和直接链接到原始来源
- 避免重复故事
- 包含恰好 {{ $json['Number of news items to include'] }} 个独特的新闻项目
- 保持友好而专业的语气,适合广泛的科技爱好者受众。
配置效果可以参考下图:

提示词配置
然后配置 Agent 的 模型和工具(存储可以不配合)。
模型选择 千问:

工具选择 Simple Vector Store,动作选择 Retrieve Documents (As Tool for AI Agent):

配置如下:
- • Memory Key 填写
news_store_key和我们前面的 key 保证相同。
- • Limit 设置为
20。
- • 勾选 Include Metadata 允许使用元数据。

整体配置如下:

我们测试一下流程,右侧是Markdown格式的文章摘要输出。

英文网站默认也会是英文摘要,如果我们希望使用中文回答的话,可以简单的在系统提示词里面加上中文回答的指令。

飞书通知
我们可以设置定时每天10点飞书给自己推送当天的新闻。
创意一个飞书机器人,选择头像、颜色,并填写名称和描述,

点击下一步需要记录下 Webhook 地址,后面流程节点备用。

在流程图里面添加一个 HTTP 请求节点:

- • Method 选择
Post
- • Header 添加
Content-Type->application/json
- • Body 设置 JSON ->
{"msg_type":"text","content":{"text":"{{ $json.output }}"}}
https://open.feishu.cn/open-apis/bot/v2/hook/[4]...
{"msg_type":"text","content":{"text":"{{ $json.output.replaceAll('\n','\n') }}"}}
消息发送的效果如下:

为了更美观的展示 Markdown 我们可以使用交互卡片来美化样式,

Body 替换成如下内容即可:
{
"msg_type":"interactive",
"card":{
"schema":"2.0",
"config":{
"update_multi":true,
"style":{
"text_size":{
"normal_v2":{
"default":"normal",
"pc":"normal",
"mobile":"heading"
}
}
}
},
"body":{
"direction":"vertical",
"padding":"12px 12px 12px 12px",
"elements":[
{
"tag":"markdown",
"content":"{{ $json.output.replaceAll('\n','\n') }}",
"text_align":"left",
"text_size":"normal_v2",
"margin":"0px 0px 0px 0px"
}
]
},
"header":{
"title":{
"tag":"plain_text",
"content":"AI News"
},
"subtitle":{
"tag":"plain_text",
"content":""
},
"template":"blue",
"padding":"12px 12px 12px 12px"
}
}
}
企业微信通知
企业微信的通知也类似,创建一个机器人,
请求的 URL 地址改成机器人的地址:
内容使用如下内容:
{
"msgtype": "markdown",
"markdown": {
"content": "{{ $json.output.replaceAll('\n','\n') }}"
}
}
推送效果如下:
企业微信的消息推送有长度限制,过长的消息会推送失败,我们可以通过 substring 来截取,比如 {{ $json.output.replaceAll('\n','\n').substring(500) }}
其他通知方式
除了企微、飞书 IM 通知,我们还有很多别的方式保存新闻和通知方式。
使用 Convert to file 保存为文件:
使用各种邮件工具发送邮件给自己:
保存到 Notion 上:
保存到数据库:
社区节点
如果内置节点里面没有你希望的,先不着急自己做,n8n 还有大量的社区插件可用。
比如:https://github.com/restyler/awesome-n8n[6] 项目上就列出了近百个流行的插件节点:
引用链接
[1] RSS Source: _https://rss-source.com/programming_
[2] Github top-rss-list: _https://github.com/weekend-project-space/top-rss-list_
[3] 知乎网友推荐: _https://www.zhihu.com/question/19580096_
[4]: _https://open.feishu.cn/open-apis/bot/v2/hook/_
[5]: _https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=_
[6]: _https://github.com/restyler/awesome-n8n_