不花一分钱,批量导出公众号文章。

简介: 不花一分钱,批量导出公众号文章。

Hello 大家好,我是安哥。


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


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


  • Python
  • 已写好的 Python 代码

  • 抓包工具 Fiddler


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


ff7a339e2374feccfe9dba1dd52b6788_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

公众号「效率工具指南」部分历史文章


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


9ca21464c5411e8afb7e981032964722_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


GitHub 项目「「vWeChatCrawl」地址:

https://github.com/LeLe86/vWeChatCrawl



01. 安装 Python


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


c33c56b2d457892607d2975c405b0136_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Python 官网地址:

https://www.python.org/downloads/


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


6f967d2f7b8dd8f10225871c564ec8a3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

图片来自网络


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


5c2d8c6b41b7f622ff288beb784bb0b6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


60320d6fcf7cb5d8299b8b722fc6b44a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


c5918c4353d0062719884046f9840fbc_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg



02. 安装抓包软件 Fiddler


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


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


c9539b58ca40a41af7244d5619096d6e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


5d7e0a204f98f5fa32652a5e1872c706_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


c27efa949482de9325913e277d664fac_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


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


ca33f207efe9526b252970a782bd7629_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


9305fbe358eb67470010d7153c9db072_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


928393d5e6702de521624669465d712a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


d2f0ce2371375998bc4dbabbc183390f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


7d0d91ae759e335c3b45b0f4419a68cb_640_wx_fmt=gif&wxfrom=5&wx_lazy=1.gif


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


73227c06849b1d8a0dd66e7f9f1be8e8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


0e58538d0c899421cc41d12f5f2050b4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


bff7a5d463b1673d8e4614af9ded70a8_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


98aca72d0dcc8b285869ff0ea689a5ff_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Fiddler 官网地址:

https://www.telerik.com/download/fiddler


Fiddler Windows 版备用下载地址:

https://wwx.lanzoui.com/i8qhbp9rnva



03. 修改代码文件


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


8c4b2c963e9727a54dc2774d845c845b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


Python 代码下载地址:

https://www.xiaokuake.com/p/kaiyuanhelp.html


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


9913084f7ee975f91ee32f587cb6ab2d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


136ef2c2be8ac0d40d41aba4ff072cee_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


b119a8016aff7960b81334bf934cd2ff_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


2f9a39bdd13bd0490480a48f85b0dca4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


5c2d8c6b41b7f622ff288beb784bb0b6_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


c2c16d46bb7be4240f67a14397976f1f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


7d60fb4feb5cf2767e61374957303053_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


4cdd86c42760ebcda6ee23a2fa3efdb3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


5d5672ec98a7c01c00430c25db2730a3_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

Python 程序自动抓取的文章


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


97793fe15a79eaca869835cba6694dca_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


23c9778432db549864d58e27bc05476b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


627f4cbaa503451656c7f52bc8481067_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


vcredist 组件下载地址:

https://wwx.lanzoui.com/i2kKjpaqwpi


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


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


fec512011cf5f563f748ee53f1a4f57f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


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


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


9ca60dfcf939d4c465caf40e74e9b9d2_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

程序出错


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


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



以上就是本次想和你分享的内容。


相关文章
|
开发者 黑灰产治理
专家博主最新专享福利上线!发文即得积分好礼!
最新专享福利上线!赢取海量积分兑换心仪礼品
603 0
云起实验室《喜迎新春体验福利大放送》中奖名单&问答
云起实验室《喜迎新春体验福利大放送》中奖名单&问答
云起实验室《喜迎新春体验福利大放送》中奖名单&问答
元旦特辑 | 您有一份“云”祝福,请查收
元旦特辑 | 您有一份“云”祝福,请查收
|
前端开发
「趣学前端」今日祝福不限量,批量导入在路上
用技术实现梦想,用梦想打开创意之门。今天分享批量导入在路上。
171 1
「趣学前端」今日祝福不限量,批量导入在路上
|
开发者
宜问宜答第三期中奖名单出炉🔥
宜问宜答开发者社区问答活动第三期结果公示,活动持续到月底噢!
197 0
宜问宜答第三期中奖名单出炉🔥
|
开发者
乘风者之星来啦!发文享阿里内推机会和50W流量曝光!
乘风者计划特推出乘风者每周之星活动,期待各位博主的参与,成为“每周之星”,上榜者可获得官方流量扶持
18395 3
乘风者之星来啦!发文享阿里内推机会和50W流量曝光!
程序人生 - 刷屏众怒!付费会员还要再花钱点播,腾讯视频割韭菜的五大绝招,你中了几个?
程序人生 - 刷屏众怒!付费会员还要再花钱点播,腾讯视频割韭菜的五大绝招,你中了几个?
126 0
程序人生 - 刷屏众怒!付费会员还要再花钱点播,腾讯视频割韭菜的五大绝招,你中了几个?
云起实战营 单期鼠标获奖名单公示
第一期-第五期鼠标发货公示,及快递问题
云起实验室《半天掌握日志存储》礼品发货公示
活动地址:https://developer.aliyun.com/adc/series/activity/sls-1
宜搭小技巧|露营季必备神器,活动报名一招搞定!
开启「同一账号仅能提交一次」规则,再也不用担心活动报名数据重复提交!
460 0
宜搭小技巧|露营季必备神器,活动报名一招搞定!