微信文章爬蟲
所謂爬蟲者,給人感覺都是些拿來主義的東西,說出去還是有點汗顔。但如果爬的是自己寫的東西呢?嗯,也許就理直氣壯了。
一直以來,微信一直都禁用曆史文章清單。并且在每一代的更新中,都加強防範。對喜好收集資料的人來說,簡直是噩夢。我曾找某人幫我人工收集某公衆号17-20年間的450多篇文章。整個過程持續近兩個月。中途還經常連哄帶騙地讓人幫我做事情,我簡直變得不像我自己。
直到我讀到一篇文章:《持續更新,微信公衆号文章批量采集系統的建構》(https://zhuanlan.zhihu.com/p/24302048),倒不是因為技術有多高超,而是為作者的愚公精神所折服。
wechat_spider 是筆者在github上找到一款基于 Node.js 的微信爬蟲,通過"中間人代理"的原理,批量擷取微信文章,包括閱讀量、點贊量、評論和文章正文等。
所謂中間人代理,無非是通過抓包工具監聽手機發送請求,不斷地循環往資料庫請求資料。
•使用代理子產品 AnyProxy。代碼已支援 AnyProxy 4 版本。•支援 Docker 部署。•項目可運作在個人電腦上,也可部署在伺服器上。
AnyProxy是阿裡開發的一個開放式的HTTP代理伺服器。更重要的,它使用node開發。
官方文檔 : http://anyproxy.io/cn/ Github首頁:https://github.com/alibaba/anyproxy
準備
•安裝 Node,版本大于 8.8.1•安裝 MongoDB,版本大于 3.4.6•安裝 Redis•帶微信的手機
部署
本項目可通過docker部署。
git clone https://github.com/lqqyt2423/wechat_spider.git
cd wechat_spider
# build image
docker-compose build
# 運作執行個體
npm start
複制
設定代理
手機和電腦連到同一個wifi下。設定手機代理為:
電腦ip:8101
。
安裝證書
部署之後通路
http://localhost:8102/
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAjM2EzLcd3LcJzLcJzdllmVldWYtl2PnVGcq5Cb4RjdlNma2UWavwlMwgjM2ATMtUGall3LcVmdhNXLwRHdo9CXt92YucWbpRWdvx2Yx5yazF2Lc9CX6MHc0RHaiojIsJye.jpeg)
點選rootCA。
作者很貼心地給我們伺服器裝好了證書,但手機,還是得自己安裝。
安裝之後
這時候就可以開始搞了,手機通路公衆号的文章清單。
——手機螢幕不停閃動。這時抓包已經開始了。
觀察控制台變化:
已經在爬取資料。
系統內建了一個可視化界面,這時在通路:http://localhost:8104 :
文章已經存到資料庫了。據測試,154篇拉取時間為1個小時。(公衆号沒人讀,逃?♂️)