不花一分钱,批量保存公众号文章 | Python - 图1

本文首发于我的公众号「效率工具指南」,欢迎移步关注。

Hello 大家好,我是安哥。

今天想来给大家介绍一下,如何在不花钱的情况下,批量导出公众号的所有文章。

使用这个方法,需要用到的工具有:

  • Python
  • 已写好的 Python 代码
  • 抓包工具 Fiddler

如果你是第一次接触 Python,请不要被吓到,因为我也是 Python 小白,跟着操作,我也导出了一部分自己公众号的文章,文章格式为 PDF,如下图:

不花一分钱,批量保存公众号文章 | Python - 图2

写好的 Python 代码来自 GitHub 上一个项目「vWeChatCrawl」,代码的作者 @LeLe86 也写了一份使用说明和录了一个视频。

不花一分钱,批量保存公众号文章 | Python - 图3

GitHub 项目「「vWeChatCrawl」地址:
https://github.com/LeLe86/vWeChatCrawl

01. 安装 Python

打开 Python 官网,下载最新版的 Python3.9.5,支持 Windows、macOS 和 Linux 系统。

不花一分钱,批量保存公众号文章 | Python - 图4

Python 官网地址:
https://www.python.org/downloads/

下载之后,打开 Python 安装程序,先勾选安装面板下方的「Add Python 3.8 to PATH」,再点击「Install Now」,一直点下一步等待 Python 完成安装。

不花一分钱,批量保存公众号文章 | Python - 图5

安装好 Python 之后,为了确认我们配置好了环境变量,我们可以按下 Win + S 打开 Windows 自带的搜索,输入 cmd,打开「命令提示符」。

不花一分钱,批量保存公众号文章 | Python - 图6

在打开的窗口中,输入 python 后按下回车,如果下方返回 Python 的版本号,例如我这里返回的版本号是 Python 3.9.2 ,则说明 Python 已经配置妥当了。

不花一分钱,批量保存公众号文章 | Python - 图7

如果你使用的是 Mac 电脑,则需要在终端中输入 python3,如果下方也同样返回了我们安装的 Python 版本,就说明 Python 环境搭建好了。

不花一分钱,批量保存公众号文章 | Python - 图8

02. 安装抓包软件 Fiddler

抓包软件 Fiddler 是为了获取电脑版微信向服务器请求的数据,方便我们后续使用 Python 批量获取公众号文章的 url 链接。

像平常安装普通的软件一样,一直点击下一步完成 Fiddler 的安装,安装好之后它不会在桌面生成快捷方式,你可以在开始菜单面板中找到它。

不花一分钱,批量保存公众号文章 | Python - 图9

打开 Fiddler,点击顶部的 Tools 选项卡,选择 Option 打开设置面板。

不花一分钱,批量保存公众号文章 | Python - 图10

切换到 HTTPS 选项卡,勾选「Decrypt HTTPS traffic」,接着勾选「Ignore server certificate errors(unsafe)」,软件会弹出一个警告窗口,选择 Yes 就好。

接着还会弹出一个安装证书的「安全警告」,点击「是」安装证书。安装好证书之后,要再次勾选一下「Ignore server certificate errors(unsafe)」,才算完成了设置。

不花一分钱,批量保存公众号文章 | Python - 图11

安装好证书之后,点击软件右侧的「Filters」切换到过滤面板,勾选「Use Filters」启用过滤功能。

接着勾选下方的「Show only if URL contains」,在后面的输入框输入下方的内容:

不花一分钱,批量保存公众号文章 | Python - 图12

文章不能放入这个链接,只能以图片的形式插入了

不花一分钱,批量保存公众号文章 | Python - 图13

接着打开电脑版微信,打开你想导出文章的公众号的任意一篇文章,点击文章顶部的蓝色公众号名称,选择「查看历史消息」。

不花一分钱,批量保存公众号文章 | Python - 图14

下图即为公众号的历史文章列表,让这个页面先晾着、保持打开的状态,我们回到抓包软件 Fiddler 中。

不花一分钱,批量保存公众号文章 | Python - 图15

点击 Fiddler 工具栏的删除按钮 X,在弹出的面板中,选择「Remove all」,清除下方不需要的数据。

不花一分钱,批量保存公众号文章 | Python - 图16

回到微信历史文章页面,点击页面顶部的刷新按钮,往下滑动页面,注意看下图右侧的 Fiddler 的变化:随着我们往下滑动历史文章页面,Fiddler 会同步抓取到我们向服务器发出的请求。

如果你想导出所有文章,就需要将历史文章页面滑动到最底部,让 Fiddler 能获取到所有数据请求。

不花一分钱,批量保存公众号文章 | Python - 图17

假设你已经滑动到页面顶部了,Fiddler 获取的请求数据也不再增加了,此时你可以依次点击 Filddler 的菜单 File >> Export Sessions >> All Sessions。

不花一分钱,批量保存公众号文章 | Python - 图18

在打开的导出面板中,我们需要选择导出的文件格式,这里选择 Raw Files

不花一分钱,批量保存公众号文章 | Python - 图19

选好格式之后,取消勾选下方的「Recreate folder structure」,再点击右下角的 Export,就可以将获取到的数据导出到电脑桌面。

不花一分钱,批量保存公众号文章 | Python - 图20

Fiddler 导出得到的数据,格式为 json,这不是我们最终想要的数据,我们还需要对数据作进一步地处理,才能得到我们想要的公众号文章。

不花一分钱,批量保存公众号文章 | Python - 图21

Fiddler 官网地址:
https://www.telerik.com/download/fiddler

Fiddler Windows 版备用下载地址:
https://wwx.lanzoui.com/i8qhbp9rnva

03. 修改代码文件

在开始这一步操作之前,我们需要从 GitHub 项目「vWeChatCrawl」作者的博客下载本次需要用到的 Python 代码。

不花一分钱,批量保存公众号文章 | Python - 图22

Python 代码下载地址:
https://www.xiaokuake.com/p/kaiyuanhelp.html

解压下载得到的代码文件夹,首先在文件夹中创建两个新的子文件夹,一个名为 html,一个名为 pdf,这两个文件夹用来存放等会导出的文章。

不花一分钱,批量保存公众号文章 | Python - 图23

右击文件夹中的 config.json 文件,在打开方式中,你可以使用记事本打开,如果你的电脑安装了代码编辑器,例如 VS Code,也可以使用编辑器打开。

不花一分钱,批量保存公众号文章 | Python - 图24

我们需要在打开的文件中,填入三个文件夹所在的路径,第一个 jsonDir,需要填入我们从 Fiddler 中导出的 json 文件夹的位置。

打开 Fiddler 导出的 json 文件夹,将鼠标放到文件夹顶部的路径位置,鼠标一划,路径位置会切换为可选中的状态,按下 Ctrl + C 复制路径,将其粘贴到 config.json 文件中 jsonDir 的位置。

不花一分钱,批量保存公众号文章 | Python - 图25

config.json 文件中的 htmlDirpdfDir,则分别填入我们在代码文件夹中创建的两个子文件夹的位置。

分别填入之后,按下 Ctrl + S 保存我们对 config.json 文件作出的修改。

不花一分钱,批量保存公众号文章 | Python - 图26

按下 Win + S 打开 Windows 自带的搜索,输入 cmd,打开「命令提示符」。

不花一分钱,批量保存公众号文章 | Python - 图27

下图左侧就是我们打开的命令提示符窗口,在其中输入 cd,后面加上一个空格,接着再将代码文件夹 vWechatCrawl 的路径粘贴到空格后边。

不花一分钱,批量保存公众号文章 | Python - 图28

粘贴路径之后,按下回车键 Enter,进入代码文件夹中。

不花一分钱,批量保存公众号文章 | Python - 图29

接着输入 python setupPackage.py,按下回车键,它就会帮我们安装等会 Python 需要用到的一些第三方库或者模块。

安装的时候它会出现一些黄颜色的警告信息 WARNING,这些信息不是说我们的程序出错了,只是一个提醒而已,可以忽略它们。

不花一分钱,批量保存公众号文章 | Python - 图30

接着输入 python start.py,导出文章的 python 程序就会开始运行啦,你可以去到 html 文件夹中,会发现文件夹中多出一些 html 文件和一个名为 images 的文件夹。

不花一分钱,批量保存公众号文章 | Python - 图31

Python 程序自动抓取的文章

在浏览器中打开任意一个 html 文件,就能看到我们用 Python 导出的文章啦,文章格式、排版和原来的一样,文章中的图片也没有丢失

不花一分钱,批量保存公众号文章 | Python - 图32

如果你想得到 PDF 格式的文章,可以在命令提示符窗口中按下 Ctrl + C,先暂停当前正在运行的 Python 程序

接着输入 python start.py pdf,让 Python 程序将我们刚刚得到的 html 格式的文章转换为 PDF。

不花一分钱,批量保存公众号文章 | Python - 图33

输入上面的命令,有的朋友可能会遇到一个错误提示「计算机丢失 MSVCR120.ddl」,这是因为系统缺少了一个与转换为 PDF 相关的组件 vcredist

不花一分钱,批量保存公众号文章 | Python - 图34

vcredist 组件下载地址:
https://wwx.lanzoui.com/i2kKjpaqwpi

安装组件之后,再次在命令提示窗口中输入 python start.py pdf,Python 程序就会将 HTML 格式的文章,自动转换为 PDF 格式。

下图就是 Python 程序将我的部分文章转换为 PDF 的效果啦,相比 HTML 格式,PDF 格式的文章命名比较规范,它会带上文章发布的日期文章名称,更方便我们查看。

不花一分钱,批量保存公众号文章 | Python - 图35

当然,使用这个 Python 导出文章的过程中,我也遇到了一个暂时还没有解决的问题:

如果你抓取的文章列表中包含有纯视频的内容,例如我之前在公众号发过的一期视频,那么这个视频内容就会使得程序出错,导致无法继续获取后面的文章。

不花一分钱,批量保存公众号文章 | Python - 图36
程序出错

对于这个问题,可能只有修改 Python 代码,让程序自动跳过视频内容,才可以顺利导出后面的文章。

只是我还不知道怎么改,只能在线等有缘人、热心人来改代码了。

以上就是本次想和你分享的内容。
看完文章如果觉得对你有帮助的话,别忘了点击底部的「点赞/在看」鼓励一下我,谢谢。

公众号:效率工具指南.png