订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...
原標題:一步步教你怎么打造微信公眾號歷史文章爬蟲
開篇語:
鄧爺爺曾說過:不管黑貓白貓,逮到耗子就是好貓。不管我是湊的還是笨辦法堆出來的,確實把批量導出微信公眾號所有歷史文章的這個功能給做出來了,而且還運行了大半年了,經歷了幾千個各式各樣類型公眾號的檢驗,還都能正常工作。所以自認為與大家分享的知識會幫到一部分朋友,至少能帶來點啟發(自信還是要有的,要不還咋寫)。當然我也深知我這種現學現賣做出來的產品會有許多待完善的地方,也請大牛不吝指教。
友情提醒:
雖然喬布斯說過每個人都應該懂點編程知識,而且本文確實是想授人以漁,但我還是想強調不是每個人想吃魚的時候都得現去釣魚,所以如果您根本不是做技術的或者看完覺得技術難度較大或者只需要保存一兩個號,不妨直接找我幫你搞,畢竟時間也是成本。
該系統大致分成這么幾步:
1、公眾號所有歷史文章鏈接的獲取。
2、單篇文章原始HTML的下載,包括文字、圖片、css等內容。
3、文章批量下載、管理。
4、HTML轉換成PDF。
5、后續有新文章時的更新。
6、基于此系統的擴展功能。
不著急,咱分幾篇慢慢寫。
第一步,歷史文章鏈接的獲取,這是最難也是最重要的一步。
方法:安卓模擬器/安卓真機 + Fiddler/Anyproxy 等抓包工具。
再具體來講,初級辦法是在手機上通過模擬按鍵的方式不停加載文章列表,不停抓包,這是完全模擬人工操作,缺點是比較慢,必須按照文章發布順序倒序依次獲得所有數據,其間有可能出各種各樣卡住的問題(其實好的程序本來就要應對各種異常情況)。
稍高級點的是抓包拿到的手機向微信服務器請求文章列表時發送的請求網址數據,再用程序模擬出所有的請求網址,一一發給微信服務器,并獲得相應的返回數據。這種方法的優點靈活性強,可以獲取特定索引次序的文章(比如第100到120篇文章,但不能獲得特定時間段的,只能是大體估計時間段。)壞處是難度大,而且如果沒做好偽裝有可能被微信發現你是爬蟲帶來封號。(本文中提到的封號,是指微信官方會封鎖該微信號24小時內讀取任意公眾號文章的功能,正常的聊天并不受影響,過了24小時會恢復正常,但如果被封的次數多了也許會處罰從重哦。)
上文提到的這些方法其實都是模擬客戶端向微信服務器請求數據,一定要注意控制好請求頻率,間隔太短的話很容易被屏蔽。當然還有更高級的,通過修改請求網址中某些key的值來獲得高級權限,可以以近乎不限速不限量的速度獲取大量數據,不過這個門檻相當高而且沒人會公開,如果有誰有這方面的信息歡迎分享。拿不到也不要沮喪,用我提供的普通玩法就足夠了。
鏈接獲取之后還要保存到數據庫,量不大的話保存到excel中也行,至于都要保存什么數據,仔細看看返回的Json數據格式就可以了,不過需要注意編碼問題。
2、單篇文章的下載,各種編程語言都有成熟的請求網頁內容的庫,一定要把自己偽裝成瀏覽器,可別傻傻告訴微信我是爬蟲我來爬你了(那樣微信爸爸會啪給你一巴掌再啪把門一關不讓你爬了)。網頁html下載下來后解析出里面的圖片,再挨著下圖片就可以了。為了方便管理圖片可能需要一個專門的images文件夾去保存,注意修改相對路徑。我在多處看到有人說微信的圖片不好爬,不過我一直沒遇到過啥問題,如果你遇到了不妨提出來交流下。
今天就先前兩步吧。以前凈看別人的技術教程了,今天第一次寫教程,不知道深度和詳細性是否合大家的味口,歡迎留言給我。返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的订阅号微信公众号历史文章爬虫php,一步步教你怎么打造微信公众号历史文章爬虫...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iCloud备份失败怎么办iCloud无
- 下一篇: 升级iOS 16.4后遇续航缩水怎么办