最近一直在折腾自己的粉丝群,每天都得在群里发 AI 日报,说真的,最开始那阵儿可太费事儿了!
我每天都得先找对应网站复制内容,再扔给 AI 让它帮忙整理总结,最后自己再复制粘贴到群里,一套流程下来,至少得花 10 分钟。

后来我琢磨着不能总这么手动来,就试着用 n8n 搞了个自动化流程 —— 现在它能每天自己去扒网页内容,自动总结完还会发到我邮箱里,我只需要去邮箱复制一下再发群里就行,省了不少事儿!

不过我转念一想,我可是个 UI 设计师啊,总不能一直发纯文字吧?得发挥点自己的长处,给日报加点形式感才行。于是我又开始琢磨,能不能让 n8n 直接生成 AI 日报的海报图?
结果做的时候踩了好多坑,中途好几次都想放弃,寻思着干脆用 coze 的画板功能算了。但又有点不甘心,总觉得没有解决不了的问题,咬咬牙还是坚持下来了。

今天就来跟大家唠唠,我是怎么一步步搞定这个自动化海报生成的~
首先我们先理一下具体逻辑,主要是定时触发->获取需要抓取的网页链接->提取需要的内容->生成对应的日报内容 ->发送邮件->生成海报图->保存到本地文件夹

最终工作流如下。

下面我们就进入实际操作环节
前期准备
1、n8n本地部署
用docker的方式部署n8n服务 https://www.docker.com/,并挂载本地的图片和字体文件夹目录到对应的容器目录 先创建docker数据卷
docker volume create n8n_data
创建本地挂载路径,地址换你自己的 这边的路径是我的电脑对应的路径(上面的是mac的下面是windows的)
mkdir -p /Users/qxw/Downloads/n8n/images
mkdir -p D:n8nimages
启动n8n容器,并把本地的images目录挂载到容器的images目录(上面的是mac的下面是windows的),具体路径大家根据自己实际的来。
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -v /Users/qxw/Downloads/n8n/images:/images -v /Users/qxw/Downloads/n8n/images/fonts:/usr/share/fonts/custom:ro -e TZ=Asia/Shanghai -e N8N_BASIC_AUTH_ACTIVE=true -e N8N_BASIC_AUTH_USER=admin -e N8N_BASIC_AUTH_PASSWORD=password -e N8N_SECURE_COOKIE=false n8nio/n8n
docker run -d ^ --name n8n ^ -p 5678:5678 ^ -v n8n_data:/home/node/.n8n ^ -v D:n8nimages:/images ^ -v D:n8nimagesfonts:/usr/share/fonts/custom:ro ^ -e TZ=Asia/Shanghai ^ -e N8N_BASIC_AUTH_ACTIVE=true ^ -e N8N_BASIC_AUTH_USER=admin ^ -e N8N_BASIC_AUTH_PASSWORD=password ^ -e N8N_SECURE_COOKIE=false ^ n8nio/n8n
2、海报底图
有设计经验的可以直接使用figma、illustrator、photoshop等软件制作,没有经验的可以直接使用稿定设计、创客贴等在线工具。
需要把完整内容都先设计出来,这样首先能看到实际效果,然后也可以知道具体的需要变化的内容的坐标及字号大小颜色等,下图日期及内容部分是我需要每天变化的内容,所以我需要导出一个去掉日期和内容的图作为海报底图。

3、获取deepseek api key
获取方式https://platform.deepseek.com/usage,点击创建API key

随意命名

复制API key

4、send email 发送邮件节点设置
添加send email节点,点击SMTP account,选择Create new credential添加

设置账号以qq邮件为例,user为自己的QQ邮箱

打开qq邮箱,点击账号

往下翻找到SMTP这边,开启这边的服务,开启后点击继续获取授权码
把这个密码复制填入到Password,Host输入smtp.qq.com

正式开始
打开n8n,还不会的可以看我的这篇文章从 0 到 1 玩转 n8n:官网注册 + 本地化部署 +云端部署+ 工作流搭建,保姆级学习路径全公开!点击create workflow新建一个工作流

点击中间的Add first step后,在右侧弹出的抽屉里面选择On a schedule


点击添加 搜索HTTP 选择HTTP Request

Method那边选择GET,url那边选择你要获取的网页链接,点击上面的Execute step 我们可以看到右侧已经执行成功获取到对应网页的数据了。

接着我们在后面添加一个html节点,这一步的作用是提取我需要的链接。因为我要每天动态获取这个信息,每天的这个链接是变化的,我尝试用firecrawl发现没法能稳定获取到我想要的最新链接,所以只能换方案取解决。

具体设置如下图,这边我讲下如何获取CSS Selector,这一步卡了我一段时间,毕竟我也不是程序员,但是遇事不要怕,直接跟AI沟通,一般都能解决你的问题,我也是一步一步沟通才摸索出来的。

我们首先按F12进入网页的开发者模式,找到对应的链接标签

右击选择copy->copy selector

我们会得到如下内容#__nuxt > main > div > div.md:pt-[56px].pt-[50px].md:min-w-[1400px].min-h-[calc(100vh-361px)] > div > div > div.flex-1.leftPart.mt-[17px].md:mt-0 > div > div.grid.grid-cols-1.md:grid-cols-1.md:gap-[16px].gap-[32px].w-full.pb-[40px] > a:nth-child(1) 我们只需要取最后面2个>号的内容就行了 比如我这个就取 div.grid.grid-cols-1.md:grid-cols-1.md:gap-[16px].gap-[32px].w-full.pb-[40px] > a:nth-child(1) 接着还需要再处理一下 需要把>改成空格 最后把a标签的后面内容也去掉 最终得到 div.grid.grid-cols-1.md:grid-cols-1.md:gap-[16px].gap-[32px].w-full.pb-[40px] a 执行后我们可以看到对应的网页链接都被我提取出来了。

接着我们再添加一个HTTP Request节点,这个作用是获取需要提取的实际网页的内容,url那边 先自己手动复制对应网页固定的前缀,后面从左侧拖拽对应的第一条的数据连接到url的输入框里面,具体如下图

接着我们再添加一个html页面,这个的作用是提取实际的页面的内容。选择器的方法上面已经讲过了这边就不重复了。这边选择的返回值需要选择文本,Skip Selectors那边记得选择器直接用逗号隔开

接着添加一个set节点,设置了标题(这个值是邮件那边需要使用的),日期和内容


接着我们添加Basic LLM Chain节点,这个主要是为了让AI帮我们整理日报的内容,我发邮件用的是html格式,所以为了少用一个节点,直接让大模型输出了html格式

点击大模型下面的添加,在右侧选择deepseek

点击Create new credential

粘贴刚复制的apikey,再点击右上角的save按钮

当出现下图绿色提示信息代表设置好了

接着会分支执行,一个是发送邮件,另外一个是生成海报。
我们先处理发送邮件分支,在Basic LLM Chain后面添加Send email节点,直接把前面生成的html内容放到对应的html这个位置就行了,点击Execute step我们就可以看到已经收到邮件了。


接着我们处理海报这条分支
再添加一个Basic LLM Chain节点,这个是为了输出普通的内容文本,方便后面做海报使用。提示词那边需要注意文字之间不能有空格,否则在edit image节点空格会自动变成换行,我这边用_代替了空格

然后把model也连到前面的deepseek节点上

接着我们添加一个代码节点,这个节点的作用是把每段文字都独立出来

接着我们继续添加一个代码节点,这个节点的作用是让文字在固定的字数换行,edit image那边有一个控制每行最大字数的设置项,但中文不起作用。(所以我这边人为的控制每行的字数)

接着我们添加一个Read/Write Files from Disk节点,这个的作用是读取需要生成海报的背景图,/images/new/**(根据你的实际路径填写)

接着我们添加Edit Image节点,选择Multi Step


下面接着添加其他位置对应的文本信息

最后我们在添加一个Read/Write Files from Disk节点,选择Write Files from Disk,路径那边选择前面的日期来命名。

最后记得开启这边的Active

点击执行最终我们就在文件夹里看到我们生成的图片啦。


今天的分享就到这里啦,如果你觉得对你有帮助,麻烦一键三连哦~
本篇文章来源于微信公众号: 心橙AI智能体
文章评论