天天看點

微信文章爬蟲微信文章爬蟲

微信文章爬蟲

所謂爬蟲者,給人感覺都是些拿來主義的東西,說出去還是有點汗顔。但如果爬的是自己寫的東西呢?嗯,也許就理直氣壯了。

一直以來,微信一直都禁用曆史文章清單。并且在每一代的更新中,都加強防範。對喜好收集資料的人來說,簡直是噩夢。我曾找某人幫我人工收集某公衆号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/

微信文章爬蟲微信文章爬蟲

點選rootCA。

作者很貼心地給我們伺服器裝好了證書,但手機,還是得自己安裝。

微信文章爬蟲微信文章爬蟲

安裝之後

這時候就可以開始搞了,手機通路公衆号的文章清單。

——手機螢幕不停閃動。這時抓包已經開始了。

觀察控制台變化:

微信文章爬蟲微信文章爬蟲

已經在爬取資料。

系統內建了一個可視化界面,這時在通路:http://localhost:8104 :

微信文章爬蟲微信文章爬蟲

文章已經存到資料庫了。據測試,154篇拉取時間為1個小時。(公衆号沒人讀,逃?‍♂️)