跳到主要内容 基于 n8n 与数眼智能 API 搭建新闻推送简报机器人 | 极客日志
JavaScript Node.js WeChat AI
基于 n8n 与数眼智能 API 搭建新闻推送简报机器人 介绍利用开源低代码自动化工具 n8n,结合数眼智能搜索 API 与网页阅读 API,搭建全自动新闻推送简报机器人的方法。流程包括 n8n Docker 部署、API 密钥获取、飞书 Webhook 配置,以及构建定时触发、搜索新闻、提取正文、整理格式并推送至沟通工具的工作流。该方案可自动化掌握行业动态,支持多主题并行搜索与异常处理优化。
性能调优 发布于 2026/3/28 更新于 2026/4/18 7 浏览日常工作中,我们常常需要花费大量时间浏览各类网站获取行业新闻,却容易遗漏关键信息。本文将教你用开源低代码自动化工具 n8n,结合数眼智能搜索 API 的实时检索能力与网页阅读 API 的内容提取能力,搭建一个全自动新闻推送简报机器人。该机器人可按设定频率自动搜索目标主题新闻、提取核心内容、整理成规范简报,最终推送至飞书/企业微信等常用沟通工具,让你高效掌握行业动态。
一、前置准备:环境与工具就绪
在开始搭建前,需完成 n8n 环境部署、数眼智能 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 可实现实时联网检索,解决传统新闻抓取的时效性问题,获取密钥步骤如下:
登录 数眼智能开发者平台 。
然后点击'控制台',进行实名认证。
左上角就是 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 触发节点之间的箭头,建立连接。
点击'Save'后,可点击节点右上角'Run node'测试,查看下方输出日志——若返回包含新闻标题、链接、来源的结构化数据,说明配置成功。
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 即可)。
Body:选择'Raw'→ 格式'JSON',输入请求参数(可根据需求调整):
{
"query" : "人工智能 行业最新动态" ,
"search_config" : {
"top_k" : 5 ,
"enable_search" : true ,
"search_type" : "news" ,
"time_range" : "1d"
} ,
"generation_config" : {
"temperature" : 0.1 ,
"max_tokens" : 1000
}
}
步骤 3:添加数据提取节点(Function) 数眼智能搜索返回的结果为页面全部内容,需通过 Function 节点提取核心字段(新闻标题、链接、发布时间),配置如下:
左侧搜索'Function',拖拽至画布并与 HTTP Request 节点建立连接。
点击'Save'保存,测试节点确保能输出包含新闻核心信息的数组。
右侧'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 };
步骤 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 += `【${index + 1 } 】${news.title} \n` ;
briefContent += `来源:${news.source} | 发布时间:${news.pubDate} \n` ;
briefContent += `链接:${news.url} \n` ;
briefContent += `摘要:${news.content.substring(0 , 200 )} ...\n` ;
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。
保存节点,完成整个工作流的搭建。
{
"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 调用超时、无搜索结果),自动推送错误提醒至管理员。
多渠道推送:复制'飞书推送'节点,调整配置实现同时推送至企业微信、邮件等多个渠道。
微信扫一扫,关注极客日志 微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
相关免费在线工具 RSA密钥对生成器 生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
Mermaid 预览与可视化编辑 基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
Keycode 信息 查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
Escape 与 Native 编解码 JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
JavaScript / HTML 格式化 使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
JavaScript 压缩与混淆 Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online