大家好呀,我是 茉茉,一位专注于分享 AI 智能体实战技能的博主。
你是不是也经常研究那些公众号做得特别好的大 V?琢磨他们的爆款套路、内容结构,想把这些经验变成自己的?
无论是你想模仿他们的写作风格,还是打算用AI打造一个拥有他们知识的数字分身,
核心问题都只有一个:你得先把他们的全部历史文章拿到手。
公众号没有批量下载功能,传统爬虫又复杂又不稳定,很多朋友都在这一步卡住了。
别担心,我最近自己跑通了一个超好用的方法。
我做了一套自动化工作流,操作起来非常简单,能稳定、完整地把任何一个你需要的公众号文章全部提取出来。不管你是想获取历史文章还是当天发布的文章,这个工作流都可以一键搞定!
是不是很心动啊~
今天手把手这个工具和流程分享给你。咱们开始吧。
一、效果如图

二、工作流全景

三、工作流思路

四、工作流拆解(主要节点)
公众号没有提供接口调用,这里我们使用第三方平台【极致了数据网站】
网址是:https://www.jzl.com




(一)HTTP Request:获取公众号文章信息
我们要想获取某一个特定的公众号文章,首先需要知道该公众号一共有多少文章

url的值为https://www.dajiala.com/fbmain/monitor/v3/post_history


{ "biz":"XXXXXXXXXX", "url":"公众号文章链接", "name":"", "page":1, "key":"你的极致了数据的key", "verifycode":""}
(二)Edit Fields:获取总页数
这里设置一个总页数的变量,在后面的节点中会遇到

(三)Code in Python (Beta):获取循环次数(page)
我们这里通过前面获取到的文章总页数来判断循环次数,通过代码节点来实现
在代码节点的输出中,里面包含了每个page的索引,这里总共是2个索引

# 1. 修正取值:假设 _data 是单个对象 { "total_page": 2 }total = _data['total_page'] # 增加打印,请查看 Console 确认输出 "获取到的总页数: 2"print(f"获取到的总页数: {total}")orig = 1output = []page = []# 2. 循环生成页码if isinstance(total, int) and total > 0: for i in range(total): page.append(i + 1)# 3. 构造输出output.append({'page': page})return output
(四)Split Out:分割page
这里我们将获取的page列表进行分割,便于在后面的循环节点进行控制。这里我们需要一页一页的获取文章

(五)Loop Over Items:循环

(六)HTTP Request:获取每页信息
在该节点的输出中,我们可以看到每页里面的文章参数,都在data里面
每个data里面,包含了文章的url和title,后续通过这两个参数进行文章下载

url的值填https://www.dajiala.com/fbmain/monitor/v3/post_history


{ "biz":"XXXXXXXXX", "url":"公众号文章链接", "name":"", "page":{{ $json.page }}, "key":"你的极致了数据的key", "verifycode":""}
(七)Split Out:分割文章
因为每一页有多篇文章,需要对data进行分割,一篇一篇的进行下载

(八)HTTP Request:下载文章
根据文章的url进行下载


Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/116.0.0.0 Safari/537.36
(九)HTML:提取文本
前面下载的文章,是整个网页代码,这里我们把需要的文本给提取出来

(十)Convert to File:转成文件
将取出来的文本转成文件的格式保存,文件名为文章标题

(十一)Read/Write Files from Disk:存入本地

File Path and Name的值是/files_storage/{{ $('Split Out:分割文章').item.json.title }}.txt
码字不易,如果有收获,辛苦你点赞,转发,推荐给更多需要的小伙伴。我们下期教程见!👋
作者: 光予学姐
来源: 光予学姐
本文所引用的图文来自网络,版权归属原作者所有。本文基于合理使用原则少量引用,仅用于对数字营销的分析,非商业宣传目的。 若作者或版权方认为该引用损害其权益,请通过极致了数据微信: JZL3122 联系我方,我们将立即配合删除处理。
