【2026最新公众号爬虫分享】用Python爬取公众号文章,批量下载正文并保存Excel!

【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 etree

3.1 核心思路与配置

运行这个需要两个关键参数:tokencookie。这需要你登录公众平台后台,在开发者工具里抓取。

为了方便使用,我把这些配置都写进了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)

四、如何运行?

  1. 按上面说的,配置好wechat_config_new.json文件。需要更新cookie和token。
  2. 安装依赖:pip install requests pandas lxml openpyxl
  3. 运行主函数main(),坐等Excel文件生成即可。

程序会自动帮你:搜索公众号 -> 遍历所有分页 -> 逐篇下载正文 -> 保存到表格。

五、说明

需要本文完整源码的小伙伴,我都放在了与此号同名的公众号里,大家自行获取。

持续分享Python干货中!更多爬虫源码干货,请前往主页查看~

Read more

Python 入门必吃透:函数、列表与元组核心用法(附实战案例)

Python 入门必吃透:函数、列表与元组核心用法(附实战案例)

🔥草莓熊Lotso:个人主页 ❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》 ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 函数:告别重复代码的 “代码工厂” * 1.1 为什么需要函数? * 1.2 函数的核心语法(重点) * 1.3 函数的进阶用法(嵌套 + 递归) * 1.4 函数核心小结 * 二. 列表和元组:批量存储数据的 “容器” * 2.1 列表(list):最常用的可变容器 * 2.2 元组(tuple):不可变的序列容器 * 2.3 列表的元组小结 * 结尾:

By Ne0inhk
一篇带你速通差分算法(C/C++)

一篇带你速通差分算法(C/C++)

个人主页:摆烂小白敲代码 创作领域:算法、C/C++ 持续更新算法领域的文章,让博主在您的算法之路上祝您一臂之力 欢迎各位大佬莅临我的博客,您的关注、点赞、收藏、评论是我持续创作最大的动力 差分算法是一种在计算机科学中常用的算法,特别是在处理序列数据时,它可以帮助我们快速计算出序列中相邻元素的差值。时间复杂度可以达到O(1),在C++中实现差分算法不仅可以提高程序的效率,还可以简化代码的复杂度。本文将详细介绍差分算法的原理、C++实现方法以及算法例题。  算法原理 上一篇博客一篇带你速通前缀和算法(C/C++)-ZEEKLOG博客我们介绍了前缀和算法,这一篇文章就与前缀和算法相反为差分算法。 一维差分: 差分算法的核心思想是利用已有的数据序列,通过计算相邻元素之间的差值来生成一个新的序列。对于一个给定的序列 a=[a1 ,a2 ,...,an ],其差分序列 d 可以表示为:d[i]=a[i]−a[i-1]。差分数组长度一般为原定序列长度+1,即:

By Ne0inhk

全面了解 nlohmann/json:现代 C++ 的 JSON 处理利器

一、概述:为什么选择nlohmann/json? nlohmann/json 是由德国程序员 Niels Lohmann 开发的一个开源C++ JSON库,自2013年发布以来,因其极简的API设计、零依赖的头文件库特性,以及完整的现代C++支持,迅速成为C++社区中最受欢迎的JSON库(GitHub星标超38k)。相较于传统JSON库(如JsonCpp),它具有以下革命性优势: 1. 强类型安全:提供at()安全访问、类型检查API 2. 跨平台:支持Windows/Linux/macOS及嵌入式系统 3. 高性能:比JsonCpp快2倍以上(官方基准测试) 直觉式语法:操作JSON像写JavaScript一样自然 j["user"]["name"]="Alice";// 链式访问 适用场景:

By Ne0inhk
【C++DFS 马拉车】3327. 判断 DFS 字符串是否是回文串|2454

【C++DFS 马拉车】3327. 判断 DFS 字符串是否是回文串|2454

本文涉及知识点 C++DFS 马拉车 LeetCode3327. 判断 DFS 字符串是否是回文串 给你一棵 n 个节点的树,树的根节点为 0 ,n 个节点的编号为 0 到 n - 1 。这棵树用一个长度为 n 的数组 parent 表示,其中 parent[i] 是节点 i 的父节点。由于节点 0 是根节点,所以 parent[0] == -1 。 给你一个长度为 n 的字符串 s ,其中 s[i] 是节点 i 对应的字符。 Create the

By Ne0inhk