上面写的备份公众号方法都是单篇备份,如果你想备份某个公众号的所有文章,就有点太麻烦了,所以今天分享的是用Python一键备份某个公众号的所有文章,再也不用担心想看的文章被删了,这里就以我自己的公众号苏生不惑为例了,原理就是通过抓包抓取微信客户端的接口,用Python请求微信接口获取公众号文章链接再下载。 charles抓包 常见的抓包工具有Fiddler,charles,这里用的charles,先去官网https:www。charlesproxy。comdownload下载软件,然后打开微信客户端找到公众号,进入文章列表可以看到发过的文章。 不过charles没安装证书前获取不到https接口数据,显示unknown。安装证书后在proxysslproxyingsettings添加域名和host。再次抓取可以看到公众号文章接口数据了。 公众号文章的接口地址mpprofileext?actiongetmsgbizMjM5ODIzNDExfjsonoffset25count10isok1scene124uinMTU0MTQzNjkeyf57423,参数比较多,其中有用的参数biz是用户和公众号之间的唯一id,uin是用户的id,这个是不变的,key是请求的秘钥,一段时间就会失效,offset是偏移量,count是每次请求的条数,返回值可以看到返回数据包括文章标题titile、摘要digest、文章地址contenturl、阅读原文地址sourceurl、封面cover、作者author,只要抓取这些有用的数据就行了。 python抓取公众号文章 上面分析了接口参数和返回数据,开始用Python请求微信接口就是了。 这里只抓取原创文章,我的公众号有160多篇原创,生成HTML文件2分钟就搞定了。用谷歌浏览器打开就能看。 生成的HTML文件还可以转成chm格式,需要先安装软件EasyCHM,这是一款强大的CHM电子书或CHM帮助文件的快速制作工具http:www。etextwizard。comcneasychm。html左侧是文章标题,右侧是文章内容,看起来非常方便。 还有含有文章标题和链接的markdown文件,关于markdown之前文章介绍过用Markdown来写简历和PPT。excel文件格式也有。 生成HTML,markdown和Excel都比较快,因为都是文本,下面开始导出PDF。 导出PDF 导出PDF用的工具是wkhtmltopdf,先到官网https:wkhtmltopdf。orgdownloads。html下载安装wkhtmltopdf,安装后设置环境变量,这个之前文章写过那些你可能不知道的windows奇技淫巧,然后直接命令行就能生成PDF。 wkhtmltopdfhttp:www。baidu。combaidu。pdfLoadingpages(16)Countingpages(26)Resolvinglinks(46)Loadingheadersandfooters(56)Printingpages(66)Done 比如生成百度首页的PDF。Python中使用pdfkit模块来调用wkhtmltopdf,先用pipinstallpdfkitihttp:pypi。douban。comsimpletrustedhostpypi。douban。com来安装它。 再次运行程序,PDF文件也生成了。PDF也可以用谷歌浏览器直接打开,比如这篇一键解锁网易云音乐变灰歌曲。 不过由于生成PDF比较慢,文章多的话key参数会失效,需要重新获取,然后修改nextoffset继续抓取。