當前位置:首頁 > 科技 > 正文

一鍵下載公衆号所有文章,導出文件支持PDF,HTML,Markdown,Excel,chm等格式

上面寫的備份公衆号方法都是單篇備份,如果你想備份某個公衆号的所有文章,就有點太麻煩了,所以今天分享的是用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。

λ wkhtmltopdf http://www.baidu.com baidu.pdf Loading pages (1/6) Counting pages (2/6) Resolving links (4/6) Loading headers and footers (5/6) Printing pages (6/6) Done

比如生成百度首頁的PDF。

Python中使用pdfkit 模塊來調用wkhtmltopdf ,先用pip install pdfkit -i http://pypi.douban.com/simple --trusted-host pypi.douban.com來安裝它。

再次運行程序,PDF文件也生成了。

PDF也可以用谷歌浏覽器直接打開,比如這篇一鍵解鎖網易雲音樂變灰歌曲。

不過由于生成PDF比較慢,文章多的話key參數會失效,需要重新獲取,然後修改next_offset繼續抓取。

你可能想看:

有話要說...

取消
掃碼支持 支付碼