上面寫的備份公衆号方法都是單篇備份,如果你想備份某個公衆号的所有文章,就有點太麻煩了,所以今天分享的是用Python一鍵備份某個公衆号的所有文章,再也不用擔心想看的文章被删了,這裡就以我自己的公衆号蘇生不惑為例了,原理就是通過抓包抓取微信客戶端的接口,用Python請求微信接口獲取公衆号文章鍊接再下載。
charles 抓包常見的抓包工具有Fiddler,charles,這裡用的charles,先去官網 https://www.charlesproxy.com/download 下載軟件,然後打開微信客戶端找到公衆号,進入文章列表可以看到發過的文章。
不過charles沒安裝證書前獲取不到https接口數據,顯示unknown。安裝證書後在 proxy->ssl proxying settings 添加域名和host 。再次抓取可以看到公衆号文章接口數據了。
公衆号文章的接口地址/mp/profile_ext?action=getmsg&__biz=MjM5ODIzNDEx&f=json&offset=25&count=10&is_ok=1&scene=124&uin=MTU0MTQzNj&key=f57423 ,參數比較多,其中有用的參數 __biz 是用戶和公衆号之間的唯一id,uin是用戶的id,這個是不變的,key 是請求的秘鑰,一段時間就會失效,offset 是偏移量,count 是每次請求的條數,返回值可以看到返回數據包括文章标題titile、摘要digest、文章地址content_url、閱讀原文地址source_url、封面cover、作者author ,隻要抓取這些有用的數據就行了。
python 抓取公衆号文章上面分析了接口參數和返回數據,開始用Python請求微信接口就是了。
這裡隻抓取原創文章,我的公衆号有160多篇原創,生成HTML文件2分鐘就搞定了。用谷歌浏覽器打開就能看。
生成的HTML文件還可以轉成chm格式,需要先安裝軟件 Easy CHM,這是一款強大的CHM電子書或CHM幫助文件的快速制作工具 http://www.etextwizard.com/cn/easychm.html左側是文章标題,右側是文章内容,看起來非常方便。
還有含有文章标題和鍊接的 markdown 文件,關于markdown之前文章介紹過 用 Markdown 來寫簡曆和 PPT。excel文件格式也有。
生成HTML,markdown和Excel都比較快,因為都是文本,下面開始導出PDF。
導出PDF導出PDF用的工具是wkhtmltopdf ,先到官網https://wkhtmltopdf.org/downloads.html 下載安裝 wkhtmltopdf , 安裝後設置環境變量,這個之前文章寫過 那些你可能不知道的 windows 奇技淫巧,然後直接命令行就能生成PDF。
比如生成百度首頁的PDF。Python中使用pdfkit 模塊來調用wkhtmltopdf ,先用pip install pdfkit -i http://pypi.douban.com/simple --trusted-host pypi.douban.com來安裝它。
再次運行程序,PDF文件也生成了。PDF也可以用谷歌浏覽器直接打開,比如這篇一鍵解鎖網易雲音樂變灰歌曲。
不過由于生成PDF比較慢,文章多的話key參數會失效,需要重新獲取,然後修改next_offset繼續抓取。
有話要說...