【2026最新公众号爬虫分享】用Python爬取公众号文章,批量下载正文并保存Excel!
您好,我是@iFeng的小屋,一枚4年程序猿。
一、爬取目标
我发现很多做运营和数据分析的小伙伴,一直想找能批量下载公众号文章,并且能获取完整正文内容的工具。所以,这次我开发了这个公众号文章爬虫,供大家使用。
目前是源码格式,还没有封装成软件,如果想要软件的我后续开发一个软件版本的。
二、展示爬取结果
话不多说,先看成果。爬取结果包含以下字段:

- 文章标题
- 文章链接(永久链接)
- 发布时间
- 公众号名称
- 文章正文
所有数据自动保存为Excel文件,干净整齐,拿去即可食用!
三、原理讲解
1,登录公众平台
2,然后在首页下新的创作选择文章,点进去之后在正文添加超链接,然后账号那一行选择要爬取的公众号,接着就会出现公众号发布过的文章,如下图:

3,这里按F12查看数据来源,点击网络,刷新之后可以看到文章数据来源的数据包,那接下来就要对这个url发送请求,取我们想要的值即可。token和cookie也从这里边找。

三、爬虫代码讲解
导入库:
import requests import pandas as pd import json import time from lxml import etree3.1 核心思路与配置
运行这个需要两个关键参数:token和cookie。这需要你登录公众平台后台,在开发者工具里抓取。
为了方便使用,我把这些配置都写进了wechat_config_new.json文件里:
{ "token": "你的token", "cookie": "你的cookie", "account_name": ["目标公众号1", "目标公众号2"], "start_date": "2024-01-01", "end_date": "2024-03-20" }敲黑板:account_name支持列表,可以一次配置多个公众号,实现批量爬取!
3.3 关键步骤:获取文章列表,并翻页!
这里涉及到分页逻辑:
def get_articles(config, account_name, fakeid): page = 0 all_articles = [] while True: begin = page * 5 # 微信接口每页固定5条 url = "https://mp.weixin.qq.com/cgi-bin/appmsgpublish" params = { "sub": "list", "begin": str(begin), "count": "5", "fakeid": fakeid, # 核心参数 "token": config['token'], } # 发送请求,解析JSON ... # 如果返回的数据为空,说明没有更多了,跳出循环 if not publish_list: break page += 1 time.sleep(random.randint(2, 5)) # 礼貌性等待,防止被封获取正文:
def get_article_content(link): detail_response = requests.get(url=link, headers=header, timeout=15) detail_xp = etree.HTML(detail_response.text) # 核心XPath,定位到正文区域 content_element = detail_xp.xpath("//*[@id='js_content']//text()") # 清洗、拼接文本 content_clean = [text.strip() for text in content_element if text.strip()] return '\n'.join(content_clean)四、如何运行?
- 按上面说的,配置好
wechat_config_new.json文件。需要更新cookie和token。 - 安装依赖:
pip install requests pandas lxml openpyxl - 运行主函数
main(),坐等Excel文件生成即可。
程序会自动帮你:搜索公众号 -> 遍历所有分页 -> 逐篇下载正文 -> 保存到表格。
五、说明
需要本文完整源码的小伙伴,我都放在了与此号同名的公众号里,大家自行获取。
持续分享Python干货中!更多爬虫源码干货,请前往主页查看~