偶然間,關注了一個自己特別感興趣的公眾號,感覺就像是挖到了一個寶藏。于是,我們就想翻一翻寶藏里都有什么。 但是,如果你想看到寶藏最開始的內(nèi)容,你不得不翻山越嶺,刷到公眾號的歷史起點。這還不算什么,等你下次想要接著看下一篇時,不得不重蹈覆轍。
那么,我們有什么辦法解決一下這個問題呢? 用萬能的python寫個腳本,我們就可以把公眾號歷史所有的文章批量的保存為本地的PDF,這樣,就可以根據(jù)標題和日期來看自己喜歡的文章啦! 核心內(nèi)容: 1 抓包工具Fiddler的配置及其使用 2 python獲取公眾號全部歷史文章url地址 3 把url轉(zhuǎn)化為PDF 4 獲取單個文章的方法 客戶端和服務器之間建立一個代理服務器,監(jiān)聽本機發(fā)出的請求和服務器返回的響應結(jié)果。瀏覽器與服務器之間通過建立TCP連接以HTTP協(xié)議進行通信,瀏覽器默認通過自己發(fā)送HTTP請求到服務器。 而Fiddler是c#開發(fā)(微軟出品,主要作者Eric Lawrence)的http代理服務器,fiddler工作于七層中的應用層,能夠捕獲到通過的http(s)請求。這是官網(wǎng):http://www./fiddler你也可以在公眾號【小癡印記】后臺,回復關鍵字“Fiddler抓包”直接獲取。默認情況下,F(xiàn)iddler是不會捕獲HTTPS會話的,初次使用時,需要下載安全證書,并配置。依次點擊“Tools-Options-Https”,進行如下圖的配置,“Actions-Trust root”是下載安全證書的。Fiddler的運行機制其實就是本機上監(jiān)聽 8888 端口的 HTTP 代理。Fiddler 啟動的時候默認 IE 的代理設為了127.0.0.1:8888,而其他瀏覽器是需要手動設置的,所以將 Chrome 瀏覽器的代理改為127.0.0.1:8888 就可以監(jiān)聽數(shù)據(jù)了。https://blog.csdn.net/jingjingshizhu/article/details/80566191 通過對比,前后兩個url,可以發(fā)現(xiàn),只是offset這個參數(shù)有所改變。 圖的右下角,我們可以看到返回的數(shù)據(jù)類型,及其格式。 好啦,接下來,我們可以獲取一頁內(nèi)容看看啦。根據(jù)上圖的json字符串,我們要做的是把title、content_url、datetime提取出來。至此,我們成功的獲取到了標題、時間、內(nèi)容url等信息。只有在最后一篇文章時,can_msg_continue=0,其余所有文章都是1。因此,獲取公眾號歷史文章全部內(nèi)容,可以加一個死循環(huán),當判斷為最后一篇文章時,直接break,結(jié)束循環(huán)。
|