在網上能搜索到的公衆號文章採集相關的信息來看來看,這是最多、最直接、也是最簡單的一種方案。
通常流程是:git
採集過於頻繁的話,搜狗搜索和公衆號歷史文章列表訪問都會出現驗證碼。直接採用通常的腳本採集是沒法拿到驗證碼的。這裏可使用無頭瀏覽器來進行訪問,經過對接打碼平臺識別驗證碼。無頭瀏覽器可採用selenium。github
即使採用無頭瀏覽器一樣存在問題:瀏覽器
若是堅持使用搜狗入口並想進行完美採集的話只有增長代理IP。順便說一句,公開免費的IP地址就別想了,很是不穩定,並且基本都被微信給封了。服務器
除了面臨搜狗/微信的反爬蟲機制以外,採用此方案還有其餘的缺點:微信
中間人攻擊本是某種黑客手法,用於截取客戶端與服務端之間的通訊信息。這種方案的思路是在手機微信和微信服務器之間搭建一個「HTTPS代理」,用於截獲手機微信獲取的公衆號文章信息。通常性步驟是:網絡
這種方案可以實現自動化的緣由是:加密
這種方案的優勢:lua
固然,也存在不少缺點:代理
這種方案還存在着一些變種,好比:code
但都存在「不能精確穩定控制」的缺點
在被微信反爬蟲虐了很長時間以後,和同事大腦風暴尋找新的微信公衆號文章爬取方案。就分析有哪些能得到數據的入口。模糊記得網頁微信是有公衆號文章閱讀功能的,正好我曾把玩過一段時間我的微信機器人,主要使用的是ItChat這個Python包。它實現的原理就是對網頁微信進行抓包分析,彙總成我的微信接口,目標就是全部網頁微信能實現的功能它都能實現。。因此就有了一個初步的方案——經過ItChat讓微信公衆號文章本身推送過來。快下班的時候和同事提了一下,他也挺感興趣,次日就實現出來了驗證代碼(ItChat實現相應功能代碼很是簡短,內容解析部分以前就作了,能夠直接用)。
這種方案的主要流程是:
這種方案的優勢是:
固然缺點也是有的:
微信公衆號文章採集基本上就是和騰訊鬥智鬥勇,費心費力。直到如今也沒能找到一個完美的解決方案,只能根據實際的採集目標,擇優選取。要徹底服務端,不依賴手機微信,不須要點贊數閱讀數,有大量代理IP就採用方案一;本地網絡穩定且有富裕的手機就用方案二;須要及時得到公衆號發佈的最新文章的話就用方案三。
寫的比較雜亂,見諒!
祝我早點脫坑!