微信公眾號(hào)爬蟲方案分析

2021年7月28日更新

這里有我寫的另一篇 關(guān)于文章閱讀數(shù)抓取的文章,有興趣可以看一下 http://www.lxweimin.com/p/8794449fe335


以下是正文?


文中四種方式,均為我本人親身使用過, 文中所有的文字及圖片均為本人身親自編寫和截圖, 如果轉(zhuǎn)載,請(qǐng)標(biāo)明來源

由于微信公眾號(hào)爬蟲的特殊性,微信公眾號(hào)爬蟲始終是爬蟲工程師比較頭疼的一個(gè)問題。

本文主要介紹一下目前市面上各種爬蟲的優(yōu)劣性以及適用群體

如果您有任何不同見解,或者除文中四種方式之外的方式.歡迎留言跟我交流.


1.搜狗微信(https://weixin.sogou.com/)

優(yōu)點(diǎn): 易于抓取,唯一的限制只有驗(yàn)證碼(可以通過更換代理ip避免)

缺點(diǎn): 無法通過公眾號(hào)搜索,獲取指定公眾號(hào)文章, 無法獲取永久鏈接 (文章只有幾個(gè)小時(shí)有效期,過后無法打開),無法獲取閱讀數(shù)

難點(diǎn):? 驗(yàn)證碼(通過代理ip可以解決)

適用群體: 個(gè)人抓取文章后保存,后可用于做數(shù)據(jù)分析

原理簡介: 通過程序請(qǐng)求搜狗的首頁, 分析html結(jié)構(gòu), 通過正則匹配 拿到文章的url 即可. 如下圖所示

搜狗微信

2. 基于中間人以及腳本的方式

優(yōu)點(diǎn): 可以低成本獲取數(shù)據(jù),并且可以獲取閱讀數(shù)

缺點(diǎn): 抓取數(shù)據(jù)有限(微信限制,無法解決),難于部署(需要腳本+抓包工具轉(zhuǎn)發(fā)),可能會(huì)封號(hào)!!!

適用群體: 個(gè)人抓取規(guī)模很小的情況下,或者企業(yè)用于小規(guī)模抓取(100個(gè)公眾號(hào)左右)

原理簡介:

通過點(diǎn)擊的方式 正常向微信發(fā)送請(qǐng)求,但是在配置了抓包工具等方式的中間人代理,可以捕獲到點(diǎn)擊的鏈接,從而抓取返回的數(shù)據(jù)發(fā)送到服務(wù)端

腳本可以通過按鍵精靈或者其他語言的自動(dòng)化程序來實(shí)現(xiàn)

流程演示如下( 演示 使用的是mac版客戶端,? win/mac/ios/android 客戶端同理 )?

a.配置好抓包工具(charles/fiddler) 或中間人代理

b.在客戶端隨意點(diǎn)擊一篇文章

配置好抓包工具后點(diǎn)擊文章

c.查看抓包工具的請(qǐng)求


抓到的json數(shù)據(jù)

d.配置轉(zhuǎn)發(fā)


?charles配置轉(zhuǎn)發(fā)的方式

不過這個(gè)方式只能轉(zhuǎn)發(fā)參數(shù), 轉(zhuǎn)發(fā)參數(shù)后,可以在服務(wù)端模擬請(qǐng)求即可. 后面我會(huì)完善一篇anyproxy實(shí)現(xiàn)結(jié)果的轉(zhuǎn)發(fā).

不過請(qǐng)注意!!!! 這種方式應(yīng)該很可能會(huì)封號(hào), 因?yàn)樵邳c(diǎn)擊文章的同時(shí) 相當(dāng)于閱讀了某一篇文章. 所以建議拉長抓取間隔,降低每天抓取次數(shù)(100~200次之內(nèi)可能比較合理).


3.公眾號(hào)后臺(tái)抓取

優(yōu)點(diǎn): 可以請(qǐng)求多次,并且不依賴與微信號(hào)不會(huì)有封號(hào)的風(fēng)險(xiǎn)

缺點(diǎn): 無法抓取閱讀數(shù), 需要申請(qǐng)微信公眾號(hào), 需要人為操作(授權(quán)掃碼), 穩(wěn)定性可能相對(duì)差一些(異常導(dǎo)致操作失效)

難點(diǎn): 自動(dòng)化操作流程

適用群體: 只想抓文章,不需要閱讀數(shù),并且對(duì)穩(wěn)定性不太在意的

原理簡介:

a.首先打開微信公眾平臺(tái)官網(wǎng)?https://mp.weixin.qq.com/?,并且掃碼登錄

b. 左側(cè)菜單欄選擇創(chuàng)作管理->圖文素材->新的創(chuàng)作->圖文消息


c. 點(diǎn)擊超鏈接 選擇公眾號(hào), 手動(dòng)輸入需要抓取的公眾號(hào)?

d.此時(shí)可以打開瀏覽器檢查元素 查看一下請(qǐng)求(提前打開檢察元素 不然無法攔截到請(qǐng)求)

可以看到兩個(gè) XHR的資源?searchbiz是查詢公眾號(hào)?appmsg是獲取公眾號(hào)文章?

https://mp.weixin.qq.com/cgi-bin/searchbiz

https://mp.weixin.qq.com/cgi-bin/appmsg

具體參數(shù)請(qǐng)自行抓包查看 很簡單的幾個(gè)參數(shù)

e.到此為止 整套流程就完事了, 需要做的就是 通過自動(dòng)化的程序 來實(shí)現(xiàn)如下操作, 如果追求一體化的操作并且熟悉python的朋友 可以嘗試用selenium來操作,這個(gè)方式相對(duì)簡單一些,如果不太熟悉python的朋友 可以手動(dòng)登錄并且掃碼后 導(dǎo)出 cookie , 然后再用自己熟悉的語言,使用cookie并請(qǐng)求接口 即可實(shí)現(xiàn) (核心問題就是cookie)?


4.購買成熟的api方案

優(yōu)點(diǎn): 不需要任何部署,直接調(diào)用api即可實(shí)現(xiàn),可獲取閱讀數(shù)和文章,也可以通過關(guān)鍵詞搜索

缺點(diǎn): 大部分可能需要付費(fèi).

難點(diǎn): 無

適用群體: 需求量比較大的企業(yè),并且需要數(shù)據(jù)穩(wěn)定性較高

原理簡介:? 封裝好的數(shù)據(jù)接口,底層應(yīng)該是由一套分布式的穩(wěn)定架構(gòu)來實(shí)現(xiàn), 由一些小號(hào)以及代理ip來實(shí)現(xiàn)規(guī)模大一點(diǎn)的抓取

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。