前言
日常工作中,我们常常需要花费大量时间浏览各类网站获取行业新闻,却容易遗漏关键信息。本文将教你用开源低代码自动化工具n8n,结合数眼智能搜索API的实时检索能力与网页阅读API的内容提取能力,搭建一个全自动新闻推送简报机器人。该机器人可按设定频率自动搜索目标主题新闻、提取核心内容、整理成规范简报,最终推送至飞书/企业微信等常用沟通工具,让你高效掌握行业动态。
一、前置准备:环境与工具就绪
在开始搭建前,需完成n8n环境部署、数眼智能API密钥获取、网页阅读API准备三项核心工作,为后续工作流搭建奠定基础。
1. 部署n8n运行环境
n8n支持Docker、npm、桌面版三种安装方式,其中Docker安装跨平台兼容性强,是新手首选;桌面版适合非技术用户,无需命令行操作;npm安装则适合有Node.js环境的开发者。这里以最通用的Docker安装为例:
- 前置条件:安装Docker Desktop(Windows需启用WSL 2,Mac直接安装即可),启动后确保状态栏显示“Docker Desktop running”。
- 打开终端(Windows用PowerShell,Mac/Linux用Terminal),输入以下命令启动n8n:
docker run -it --rm \ `` -p 5678:5678 \ `` -v ~/.n8n:/home/node/.n8n \ ``n8nio/n8n - 参数说明:
-p 5678:5678映射本地端口与n8n端口,-v ~/.n8n:/home/node/.n8n保存工作流数据,避免容器删除后数据丢失。 - 验证成功:终端显示“n8n ready on http://0.0.0.0:5678”后,在浏览器访问`http://localhost:5678`,看到包含节点库和空白画布的界面即部署完成。
2. 获取数眼智能搜索API密钥
数眼智能搜索API可实现实时联网检索,解决传统新闻抓取的时效性问题,获取密钥步骤如下:
- 登录数眼智能开发者平台。1. 然后点击“”进入控制台“,进行实名认证。
- 左上角就是api key,点击复制——这是后续调用API的核心认证凭证,请勿泄露。
- 查看开发文档的curl位置方便后续使用。
3. 配置消息推送凭证(以飞书为例)
机器人最终需将简报推送至指定沟通工具,这里以飞书为例说明配置流程,企业微信、Slack等工具操作类似:
- 打开飞书客户端,进入目标推送群组,点击右上角“...”→“设置”→“智能机器人”→“添加机器人”→“自定义机器人”。
- 填写机器人名称(如“行业新闻简报”),上传头像后点击“添加”。
- 复制生成的
Webhook地址(格式:https://open.feishu.cn/open-apis/bot/v2/hook/xxx),保存备用——这是消息推送的核心地址。
二、核心工作流搭建:从搜索到推送的全自动化
本次搭建的工作流逻辑为:定时触发 → 数眼智能搜索新闻 → 提取新闻链接 → 网页阅读API提取正文 → 整理简报格式 → 推送至飞书。我们将通过n8n的可视化节点拖拽,逐步实现各环节的串联。
步骤1:添加定时触发节点(Cron)
用于设定机器人的执行频率(如每天9点推送当日早报),操作如下:
-
在n8n左侧节点面板搜索“Cron”,拖拽至中间画布。
-
点击节点,在右侧配置面板设置:
- Mode:选择“Custom”(自定义时间)。
- Custom Expression:输入Cron表达式,例如
0 9 * * *(代表每天9点整触发,如需每6小时触发一次可输入0 */6 * * *)。 - Time Zone:选择“Asia/Shanghai”(北京时间)。
-
点击“Save”保存节点配置。
步骤2:添加数眼智能搜索节点(HTTP Request)
通过HTTP请求调用数眼智能搜索API,获取目标主题的最新新闻,配置如下:
-
左侧节点面板搜索“HTTP Request”,拖拽至画布,点击节点与Cron触发节点之间的箭头,建立连接。
-
右侧配置面板设置:
-
Method:选择“POST”(数眼智能搜索API通常采用POST请求)。
-
URL:输入数眼智能搜索API接口地址(如
https://api.shuyansmart.com/v1/llm/search,具体以开发者平台文档为准)。 -
Headers:点击“Add Header”添加两项配置:
- Key:
Content-Type,Value:application/json。 - Key:
Authorization,Value:Bearer 你的数眼智能API Key(认证方式以平台要求为准,部分平台直接填写API Key即可)。
- Key:
-
Body:选择“Raw”→ 格式“JSON”,输入请求参数(可根据需求调整):
{ `` "query": "人工智能 行业最新动态", // 目标搜索主题,可自定义(如“新能源 政策新闻”) `` "search_config": { `` "top_k": 5, // 获取最新5条新闻 `` "enable_search": true, // 开启联网搜索 `` "search_type": "news", // 搜索类型:news-新闻,web-网页 `` "time_range": "1d" // 时间范围:1d-1天内,7d-7天内 `` }, `` "generation_config": { `` "temperature": 0.1, // 生成温度,越低越精准 `` "max_tokens": 1000 `` } ``}
-
-
点击“Save”后,可点击节点右上角“Run node”测试,查看下方输出日志——若返回包含新闻标题、链接、来源的结构化数据,说明配置成功。
步骤3:添加数据提取节点(Function)
数眼智能搜索返回的结果包含较多冗余信息,需通过Function节点提取核心字段(新闻标题、链接、发布时间),配置如下:
- 左侧搜索“Function”,拖拽至画布并与HTTP Request节点建立连接。
- 右侧“Code”框输入以下JavaScript代码(可根据API返回格式调整字段名):
// 从数眼智能搜索结果中提取核心新闻数据 `` const searchResult = $node("HTTP Request").json; `` if (!searchResult || !searchResult.sources) { `` return { error: "未获取到有效搜索结果" }; `` } ```` // 提取标题、链接、发布时间,整理为数组 `` const newsList = searchResult.sources.map(source => { `` return { `` title: source.title || "无标题", `` url: source.url || "无链接", `` pubDate: source.pub_date ? new Date(source.pub_date).toLocaleString() : "未知时间", `` source: source.site_name || "未知来源" `` }; `` }); ```` // 输出整理后的数据 ``return { newsList: newsList }; - 点击“Save”保存,测试节点确保能输出包含新闻核心信息的数组。
步骤4:添加网页阅读节点(HTTP Request)
调用网页阅读API提取每条新闻的正文内容,这里需使用“循环节点”遍历新闻链接,配置如下:
-
左侧搜索“Loop Over Items”,拖拽至画布并与Function节点建立连接,用于遍历新闻列表。
-
在Loop节点后添加一个新的“HTTP Request”节点(命名为“网页内容提取”),配置:
- Method:选择“GET”或“POST”(根据网页阅读API要求调整)。
- URL:输入网页阅读API地址,若需传递新闻链接,可使用动态参数(如
https://api.xxx.com/extract?url={{$json.url}},$json.url表示当前遍历的新闻链接)。 - Headers:添加认证信息(如API Key),格式参考步骤2的数眼智能API配置。
-
保存节点后测试,确保能成功提取单条新闻的正文内容。
步骤5:添加简报整理节点(Function)
将提取的新闻标题、来源、正文等信息整理为易读的简报格式,配置如下:
- 在Loop节点后添加一个“Aggregate List”节点,用于聚合所有新闻的正文内容。
- 添加新的“Function”节点(命名为“简报格式化”),与Aggregate List节点连接,输入以下代码:
// 获取聚合后的新闻数据 `` const aggregatedNews = $node("Aggregate List").json; ```` // 初始化简报内容 `` let briefContent = "📅 今日行业新闻简报\n\n"; `` briefContent += "====================\n\n"; ```` // 遍历新闻并格式化 `` aggregatedNews.forEach((news, index) => { ``` briefContent +=【{news.title}\n; ```` briefContent +=来源:{news.pubDate}\n; ```` briefContent +=链接:{news.content.substring(0, 200)}...\n; // 截取200字摘要 ``` briefContent += "\n====================\n\n"; `` }); ```` // 添加结束语 `` briefContent += "💡 本简报由n8n新闻机器人自动生成,数据来源:数眼智能搜索\n"; ```` // 输出格式化简报 ``return { briefContent: briefContent }; - 保存节点,测试后可看到规范的简报文本。
步骤6:添加消息推送节点(HTTP Request)
将整理好的简报推送至飞书群组,配置如下:
-
添加新的“HTTP Request”节点(命名为“飞书推送”),与“简报格式化”节点连接。
-
右侧配置面板设置:
- Method:选择“POST”。
- URL:粘贴步骤1中获取的飞书机器人Webhook地址。
- Headers:添加
Content-Type: application/json。 - Body:选择“Raw”→“JSON”,输入:
{ `` "msg_type": "text", `` "content": { `` "text": "{{ $node("简报格式化").json("briefContent") }}" `` } ``}
-
保存节点,完成整个工作流的搭建。
三、测试与优化:确保机器人稳定运行
1. 工作流测试
- 点击n8n顶部“Save”按钮,保存整个工作流(命名如“行业新闻简报推送”)。
- 点击顶部“Execute Workflow”按钮,手动触发工作流执行。
- 查看各节点状态:若所有节点右下角显示绿色对勾,说明执行成功;若出现红色感叹号,点击节点查看“Output”日志,根据错误信息调整配置(如API密钥错误、参数格式错误等)。
- 验证推送效果:查看飞书群组,若收到规范的新闻简报,说明测试通过。
2. 核心优化方向
基础版本搭建完成后,可通过以下优化提升机器人实用性:
- 多主题并行搜索:在数眼智能搜索节点前添加“Set”节点,配置多个搜索主题(如“人工智能”“新能源”“生物医药”),通过“Split In Batches”节点实现多主题并行检索,最终聚合简报。
- AI摘要优化:在网页内容提取后添加大模型节点(如OpenAI、数眼智能大模型),通过提示词让AI生成更精炼的新闻摘要(如“将以下新闻正文总结为50字以内的核心要点”)。
- 去重与过滤:添加“Function”节点,对搜索结果进行去重(根据新闻标题或链接),过滤低质量信息(如广告、重复新闻)。
- 异常处理:添加“Error Handler”节点,当工作流执行失败时(如API调用超时、无搜索结果),自动推送错误提醒至管理员。
- 多渠道推送:复制“飞书推送”节点,调整配置实现同时推送至企业微信、邮件等多个渠道。
四、总结
通过n8n的可视化拖拽操作,结合数眼智能搜索API的实时检索能力与网页阅读API的内容提取能力,我们无需编写大量代码即可快速搭建新闻推送简报机器人。该机器人可彻底解放手动浏览新闻的时间,实现行业动态的自动化、精准化推送。后续可根据实际需求扩展功能,让机器人更贴合个人或团队的信息获取习惯。
如果需要适配其他推送工具(如企业微信),或优化某一环节的配置(如搜索参数、简报格式),可根据本文思路调整对应节点的参数即可。