告别手工抄数用 wechat_articles_spider 把公众号阅读量、点赞数一键装进表格【免费下载链接】wechat_articles_spider微信公众号文章的爬虫项目地址: https://gitcode.com/gh_mirrors/we/wechat_articles_spider周五下午四点半运营小林对着电脑屏幕发呆——明天要交月度竞品分析20 篇对标文章的数据还躺在一篇篇微信推文里。她得点开每一篇滑到最底下记下阅读量、点亮那个小心形看点赞数再把评论区热评一条条复制出来。一篇折腾三分钟还没算中途被访问过于频繁卡住。这可能是每一个做公众号运营、内容分析或学术研究的人都经历过的噩梦微信官方并没有提供批量导出文章数据的接口而手动记录既慢又容易漏。有没有一个工具能把打开文章 → 找数据 → 抄进表格这三步压缩成跑一个脚本答案就在我们今天要聊的这个开源项目里——wechat_articles_spider一个面向开发者和数据分析师的 Python 微信公众号爬虫库。它通过模拟微信客户端行为帮你批量抓取公众号的文章链接、阅读量、点赞数和评论信息甚至能把整篇文章连同图片下载到本地存档。无论你是分析自己账号的表现还是监控竞品动向它都能把最费时的那部分数据采集工作自动化。30 秒看懂这个爬虫能做什么先给你一张能力地图建立整体认知能力对应模块一句话说明采集阅读量、点赞数、评论wechatarticles/ArticlesInfo.py输入文章链接返回互动指标 JSON批量获取文章链接wechatarticles/ArticlesUrls.py公众号网页版 / PC 微信 / 移动端 / 微信读书四条路任选查询公众号信息与发文量PublicAccountsWeb搜别名、拿 fakeid、统计文章总数下载文章为本地 HTMLwechatarticles/Url2Html.py支持图片、音频、视频一并归档一条龙示例脚本test/目录从抓链接到存 Excel都有现成模板可改一句话总结它的定位它不做自动登录、不做实时推送专注把已授权参数下能拿到的公开数据稳定、规整地抓给你。能力拆解一阅读量、点赞数与评论一个方法全搞定这是整个项目最核心的价值。文章在公众号后台只能看到群发数据而单篇推文的实时阅读量、点赞数以及评论区互动普通用户根本无处批量获取。ArticlesInfo正是为此设计的。它怎么做到的原理其实不复杂当你点开一篇微信文章时客户端会向getappmsgext接口请求互动数据而这个请求需要携带appmsg_token和cookie两个凭证。ArticlesInfo要做的事就是帮你把文章 URL 解析成__biz、mid、idx、sn四个参数拼好请求然后解析返回的 JSON。看下真实调用是不是比想象中简单from wechatarticles import ArticlesInfo ai ArticlesInfo(appmsg_token, cookie) read_num, like_num, old_like_num ai.read_like_nums(article_url) comments ai.comments(article_url)一次调用返回三个数值阅读数、点赞数、旧版点赞也就是在看的前身comments则返回完整的评论 JSON包括每条评论的文字、点赞数、是否置顶、作者昵称和头像。对比一下没有它之前一篇篇点开文章 → 滑到底 → 记数 → 翻评论一篇 3 分钟。有了它之后一条命令拿到一篇文章的全部互动数据循环 100 篇也只是加个for的事。如果你还想顺带分析正文content()和complete_content()可以返回纯文本正文、字数、图片数量、标题、发布时间戳、是否含视频/内链等结构化信息。示例代码在 test/test_WechatInfo.py照着替换参数就能跑。能力拆解二四条通道获取文章链接总有一条适合你拿到互动数据的前提是手里得有文章链接。ArticlesUrls.py针对不同场景提供了四套获取方案这是我觉得项目里最有工程智慧的部分PublicAccountsWeb公众号网页版模拟登录微信公众平台按公众号名称搜索、拿 fakeid再分页拉取历史文章列表。适合日常增量抓取但单次数量有限制量大时建议多账号并行。PCPC 端微信通过profile_ext接口翻历史消息能拿到超过 500 条的链接。代价是一次性README 里作者特别提醒这方法用完即失效要慎重。Mobile移动端微信原理同 PC 端目前文档标注已失效留作参考。WeBook微信读书一个冷门但好用的偏门通道——通过微信读书的订阅源接口抓链接目前看来不会封禁被判定频繁时在移动端过个滑动验证码就能继续。再加上utils.py里现成的get_history_urls工具函数你可以直接拿到按时间排序的历史链接列表。选择建议日常监控用网页版最稳妥一次性补全历史数据再考虑 PC 端。能力拆解三文章一键下载成离线 HTML内容归档不再怕删文做竞品研究和内容库建设的人最怕的一件事就是昨天还能打开的文章今天显示该内容已被发布者删除。Url2Html就是为了解决这个焦虑而生的。它的run()方法提供 6 种模式从轻到重自由选择mode 1只返回 HTML 源码不下载图片mode 3返回源码下载图片并替换成本地路径mode 4保存 HTML 文件 下载图片最常用mode 5在 mode 4 基础上连文中的音频mp3和视频mp4一起下载from wechatarticles import Url2Html uh Url2Html() res uh.run(article_url, mode4) print(res) # 输出: xxx success!下载后它会自动按公众号名/日期/标题的规则归档图片集中放在imgs子目录还贴心地处理了 Windows 下标题非法字符的问题。跑一遍 test/test_Url2Html.py你就拥有一个可离线阅读、可长期存档的内容库了。三分钟跑通第一个例子从安装到拿到一篇阅读量好理论说完了现在动手。整个上手过程就三步。第一步安装依赖。克隆仓库后安装依赖或者直接装发布包git clone https://gitcode.com/gh_mirrors/we/wechat_articles_spider cd wechat_articles_spider pip install -r requirements.txt python -c import wechatarticles; print(安装成功)第二步拿到两组关键参数。这是最需要耐心的一步也是项目文档最详细的部分cookie token公众号网页版用登录微信公众平台 → 按 F12 打开开发者工具 → Network 面板 → 刷新页面在任意一个请求的 Headers 里就能看到 Cookie 和 token。详细图文步骤见 docs/get_cookie_token.md。appmsg_token cookie抓文章数据用用 Fiddler或 Charles、mitmproxy 等任意能解 HTTPS 的抓包工具监控微信 PC 端点开任意一篇文章找到getappmsgext请求参数和响应都在里面。操作截图见 docs/get_appmsg_token.md。第三步替换参数跑通。拿到参数后把 test/test_WechatInfo.py 里的appmsg_token、cookie、article_url换成你自己的运行python test/test_WechatInfo.py屏幕上打印出评论列表和read_like_num: 1546 56 10这样的输出时你就已经跨过最大的门槛了。实战演示把整个公众号的文章数据倒进 Excel光跑通一篇还不够我们来看一个完整场景把某个公众号近期的所有文章标题、日期、阅读量、点赞数一次性导出成表格。项目在 test/test_GetUrls.py 里给出了完整骨架核心逻辑如下用get_history_urls(biz, uin, key, ...)拉取历史文章链接列表循环遍历对每篇文章调用ai.read_like_nums(url)拿到阅读数和点赞数每条结果追加进列表用 pandas 写入 Excelimport pandas as pd from wechatarticles import ArticlesInfo from wechatarticles.utils import get_history_urls lst get_history_urls(biz, uin, key, lst[], start_timestamp0, start_count0, end_count10) ai ArticlesInfo(appmsg_token, cookie) item_lst [] for item_lst_raw in lst: for item in item_lst_raw: url item[app_msg_ext_info][content_url] read_num, like_num, _ ai.read_like_nums(url) item_lst.append([url, item[app_msg_ext_info][title], read_num, like_num]) time.sleep(random.randint(5, 10)) # 控制频率别太贪 df pd.DataFrame(item_lst, columns[url, title, read_num, like_num]) df.to_excel(公众号数据.xlsx, encodingutf-8)跑完之后你得到一张结构化的表格。接下来无论是算阅读点赞比、画趋势折线还是做竞品对比都只是 pandas 和 Excel 的事。注意脚本里的time.sleep不是摆设——它是你账号的保命符。过来人的五条避坑心得项目作者在 README 里写了很多血泪经验我再结合实践补充几条跑之前先关代理。绝大多数爬取失败的报错根源都是开着抓包软件或系统代理导致请求异常。ArticlesInfo默认把proxies设为空就是为了避免这个坑。参数必须对号入座。cookie、token 是在目标公众号的任意一篇文章里抓的换一个公众号就要重新抓。用错公众号的参数接口会直接报错。频率是生命线。获取阅读点赞时每篇间隔 5-10 秒token 有效期约 4 小时。一旦被封等 5-10 分钟再试通常能恢复——千万别硬刚。不要一上来就跑全量。先把count设小1-5用 3-5 篇文章验证参数和代码都没问题再放开循环。网页版抓链接时每页间隔建议拉到 3 分钟稳比快重要。善用半自动思路。项目刻意不做自动登录、不做实时调度因为自动化会放大风险。正确的用法是定期手动更新参数或自己写脚本半自动化然后让采集逻辑稳定跑完。README 里那句不能开箱即用不是劝退而是让你先读文档和源码——这恰恰是它质量高的原因。下一步往哪走回到开头的小林。当她把这个脚本接进自己的周报流程后20 篇文章的数据采集从一下午缩短到了几分钟表格自动生成评论热词还能顺手做个词云。这就是工具的意义把重复劳动交给代码把判断力留给人。如果你准备上手建议按这个顺序探索先读 test/ 下的四个示例脚本对照 wechatarticles/ 的源码理解每个类的职责再按 docs/get_cookie_token.md 和 docs/get_appmsg_token.md 完成参数采集最后根据自己的场景周报、竞品监控、内容存档改写示例。项目公开了几个已爬取的公众号历史文章 JSON见jsons/目录也可以先拿这些数据练手。别忘了数据抓取只是手段合规使用、尊重平台规则才是底线——把它用在合法合规的个人学习和数据分析上这个项目会是你工具箱里很趁手的一件。【免费下载链接】wechat_articles_spider微信公众号文章的爬虫项目地址: https://gitcode.com/gh_mirrors/we/wechat_articles_spider创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考