Skip to content

【n8n教程】reddit月榜、周榜top榜单帖子爬取工作流(2)

Image您好,我是Hellos AI,擅长AI编程、分享AI工具资讯等,立志让更多普通人了解AI、学会AI,利用AI找到人生的第二曲线。

在我前面的文章中已经把爬取reddit帖子的技术难点都分析和解决了,那么接下来就是需要我们来真正的搭建工作流了!

0****1****搭建工作流

总体上来说,我还是把这个功能拆分了3个子模块,有3个子工作流来完成工作,都完成,那么就完成了所有任务!

01俯瞰图图片02子工作流1

该工作流主要目的是读取需要爬取的板块名字,然后循环爬取这些板块top榜单、争议榜单的帖子列表;

03子工作流2

这里根据前面获取到的帖子列表,然后从帖子表中查出来,接着获取这些帖子的评论!

04子工作流3

把当前获取到的各个帖子和评论一起打包成一个文件,然后下载到本地,这时,我们就可以用AI来分析,然后找到用户真实的痛点了!

0****2****子工作流1

因为工作流是需要每天、每周、每月执行的,并且他们的执行逻辑大体相同,所以我就把这3个不同功能的工作流合起来了,就是下面的这个子工作流!

图片01入口

入口就是前面说的我需要每天执行、每周执行、每月执行,那么这里这个工作流就需要有3个入口,如:

图片

不同的触发方式就有不同的一些参数值,所以需要有3个set节点来对这些参数进行赋值,然后再code节点中对他们进行合并,然后再后续节点中就可以直接用code节点中输出的变量!

02查板块

因为板块是配置再数据库中的,所以这里使用到了一个MySQL节点,通过它来查询本地的MySQL数据库的板块列表,如:

图片

图片03获取榜单列表

再获得了这些板块后,接下来就是通过前一篇文章中列举的网站,通过那些接口来获得该板块的数据,如:https://redlib.catsarch.com/r/popular/top

这里使用http节点来获取它的数据,然后使用code节点来解析html并得到这些帖子数据:

图片

总的来说,这里是分为4个逻辑单元,他们的处理逻辑基本相同,但是承载的任务不一样,例如上面2个,第一个是获取榜单首页帖子列表,第二个是获取榜单第二页的帖子列表;第二行是获取争议榜单首页列表和的第二页列表;

图片

图片

然后就是一些判断,看是否有下一页等,接着就是把帖子列表进行merge,交给后续节点进行处理!

04筛选、剔重

接收到merge节点的数据后,需要对里面那种低点赞、低评论数的帖子进行过滤,当然也有一些帖子解析后出现在多个榜单中,这些数据都需要进行剔重和处理,所以这里就有这样的一些节点来完成这些工作。

图片05入库

帖子经过处理后,接下来就可以对他们进行入库了。。这里把他们都保存到posts表里面然后置初始状态,方便后续进行查询。

图片06更新板块时间

这快的逻辑倒是不是那么重要了,它的主要目的是让我看到当前这些板块啥时候执行过了,没有其他的目的了!

图片

注:在当前这个子工作流中,我用到了多个wait节点,这个节点主要作用是避免我被这个第三方reddit网站限流,因为毕竟这种榜单数据爬取还算是比较频繁和量比较大的!

0****3****子工作流2

在上面帖子爬取完毕后,接下来就是获取各帖子的评论了!

01俯瞰图这里。

这个子工作流的任务就比上面那个纯粹和简单多了,根据前面工作流中帖子的评论链接,直接打开,然后解析html,入库就完事了!

图片02入口

这里我是把这3个入口同样的也放到了这里,因为帖子爬取后,评论也是需要进行爬取的!

03获取无评论帖子

这里通过mysql节点查询帖子表,然后获得所有今天爬取并且未爬取评论的帖子的列表,如:

图片

当然,这里还对数量进行了限制(不过先对数据进行了排序,优先取帖子点赞数、评论数比较多的那些帖子)

04获取评论

这里在循环中通过http接口来获取评论,然后使用code节点来解析这些评论数据,最后把他们入库到comments表中:

图片

图片

图片

图片05获更新状态

在循环结束之后,需要对这个帖子的状态进行更新,这样避免后续重复对该帖子进行拉取!

图片0****4****子工作流3

这里就更加简单了,直接把帖子查出来,然后写入到csv文件即可,没有任何复杂逻辑!

01俯瞰图图片02功能说明

这里同样还是有3个入口,触发后可以每日、每周、每月执行,然后合并参数,接着就是查询数据库中的帖子,拼接评论数据!生成文件并落盘!

图片0****5****写在最后

好了,到了这里,这个工作流就介绍完了!触发它执行执行完毕后会生成一个csv数据文件,下一篇文章,我会详细介绍如何从csv中分析并获取需求!

另欢迎大家来我的个人博客网站https://hellosai.cc/逛逛!关注杰哥不迷路,每天给你分享不一样的实用好工具。

免责声明:本公众号分享的内容以及软件等来自互联网,仅供大家学习交流,同时请遵守你当地的法律法规,否则造成的一切后果自负,与本公众号无关。如有侵权联删!部分知识难免有时效性,若内容过期失效,请见谅,感谢!

******喜欢这篇干货?如果觉得不错,请帮我一键三连,转发给您的朋友,都是对我最大的鼓励与认可。如果想第一时间收到推送,可以把我的公众号加个星标🌟方便后面我们一起探讨AI或有意思的东西,还能够快速找到我!我们明天见!END图 | 来源网络侵删欢迎点赞,在看,转发给我鼓励~***👇👇关注我👇👇图片👇👇扫码加入粉丝群领取福利👇👇

杰哥的技术小站