方案一:基于搜狗入口 在網上能搜索到的公眾號文章采集相關的信息來看來看 , 這是最多、最直接、也是最簡單的一種方案 。一般流程是:
搜狗微信搜索入口進行公眾號搜索選取公眾號進入公眾號歷史文章列表通過文章列表獲取文章鏈接 , 通過文章鏈接獲取文章內容對文章內容進行解析入庫【分析公眾號文章采集方法 公眾號文章采集怎么弄】采集過于頻繁的話 , 搜狗搜索和公眾號歷史文章列表訪問都會出現驗證碼 。直接采用一般的腳本采集是無法拿到驗證碼的 。這里可以使用無頭瀏覽器來進行訪問,通過對接打碼平臺識別驗證碼 。無頭瀏覽器可采用selenium 。
即便采用無頭瀏覽器同樣存在問題:
效率低下(實際上就是在跑一個完整的瀏覽器來模擬人類操作)網頁資源瀏覽器加載難以控制 , 腳本對瀏覽器加載很難控制驗證碼識別也無法做到100% , 中途很可能會打斷抓取流程如果堅持使用搜狗入口并想進行完美采集的話只有增加代理IP 。順便說一句 , 公開免費的IP地址就別想了 , 非常不穩定 , 而且基本都被微信給封了 。
除了面臨搜狗/微信的反爬蟲機制之外 , 采用此方案還有其他的缺點:
無法獲得閱讀數、點贊數等用于評估文章質量的關鍵信息無法及時獲得已經發布公眾號文章 , 只能作定期的重復爬取只能獲得最近十條群發文章方案二:對手機微信進行中間人攻擊 中間人攻擊本是某種黑客手法 , 用于截取客戶端與服務端之間的通信信息 。這種方案的思路是在手機微信和微信服務器之間搭建一個”HTTPS代理” , 用于截獲手機微信獲取的公眾號文章信息 。一般性步驟是:
手機微信搜索一個公眾號點擊進入公眾號歷史文章頁面代理識別已經進入列表頁 , 進行內容截獲 , 同時根據實際情況返回繼續下拉或爬取新的公眾號的js代碼這種方案能夠實現自動化的原因是:
微信公眾號使用的是HTTPS協議 , 且內容未加密微信公眾號文章列表和詳情本質上是個Web頁面 , 可以嵌入js代碼進行控制這種方案的優點:
一般情況下不會被屏蔽能拿到點贊數和閱讀數等文章評估信息能拿到公眾號全部的歷史文章當然 , 也存在很多缺點:
需要一個長期聯網的實體手機前期需要設置代理 , 工作量比較大本質上還是個輪查的過程 , 而不是實時推送同樣有Web加載難以控制的風險 , 且本地網絡環境對其影響非常大存在著微信接口發生變更代碼不再適應的情況這種方案還存在著一些變種 , 比如:
通過lua腳本控制公眾號搜索而不是靠代理返回嵌入的js代碼通過GUI操作腳本控制PC端微信但都存在”不能精確穩定控制”的缺點
方案三:網頁微信抓包分析 在被微信反爬蟲虐了很長時間之后 , 和同事大腦風暴尋找新的微信公眾號文章爬取方案 。就分析有哪些能獲得數據的入口 。模糊記得網頁微信是有公眾號文章閱讀功能的 , 正好我曾把玩過一段時間個人微信機器人 , 主要使用的是ItChat這個Python包 。它實現的原理就是對網頁微信進行抓包分析 , 匯總成個人微信接口 , 目標就是所有網頁微信能實現的功能它都能實現 。。所以就有了一個初步的方案——通過ItChat讓微信公眾號文章自己推送過來 。快下班的時候和同事提了一下 , 他也挺感興趣 , 第二天就實現出來了驗證代碼(ItChat實現相應功能代碼非常簡短 , 內容解析部分之前就做了 , 可以直接用) 。
猜你喜歡
- 聯想電腦顯示器無信號 解決方法教程
- 貼完面膜要不要洗臉 具體分析如下
- 教你注冊第二個微信號 1個號碼申請2個微信
- 簡短有氣勢的團隊口號 簡短有氣勢的團隊口號舉例
- 銀行國家節假日放假嗎 銀行國慶幾號上班
- 王者七夕活動幾號 王者七夕活動介紹
- 微信未關注訂閱號推薦怎么關
- 抖音號在哪里買賣?抖音號轉讓方式有哪些?
- 路亞線一般用幾號尼龍線
- 天津地鐵九號線幾點開啊?
