1. 程式人生 > >微信文章閱讀數點贊數查詢API介面及實現(小資料量)

微信文章閱讀數點贊數查詢API介面及實現(小資料量)

微信文章閱讀數點贊數查詢API介面及實現

研究過微信文章閱讀和點贊數的同學都知道,如何獲取這兩個數字,關鍵在於獲取微信有效的key.這個key的作用時間大概是2小時,而且也有訪問頻率的限制.訪問頻率可以用程式碼控制,大概10秒一次的速度就不會被遮蔽.接下來說如何完全自動獲取有效的key.

可能大部分同學都會去搞手機上的key,一來我不知道怎麼搞(Java開發不會Android囧),二來也是打算直接在PC端實現這個抓取過程.於是就從研究微信的網頁客戶端.其實這個key非常好獲取,轉發一個公眾號的文章到網頁客戶端,從客戶端開啟就可以在連結裡看到這個key.


我實現的思路是:

用chrome瀏覽器外掛模擬點選網頁版的客戶端裡的公眾號微信文章,獲取到這個連結中的key和uin這兩個引數.通過websocket傳到本機的Java中(抓取的時候調通過websocket傳送訊息給chrome,然後返回key和uin).

chrome的外掛已經寫完了.具體的使用步驟就是,開啟你的server端(啟動你的websocket server),點選那個微信的圖示,外掛圖示(這一步是連線websocket client 到server).保證檔案轉發助手裡有一條公眾號的文章(任意一篇),接下來程式就可以呼叫了.


Java拿到的key


現在整個抓取過程已經寫完了,而且也能用(我的抓取量很小,量的同學請再研究別的辦法.).整個抓取過程中我認為另一點比較重要的就是獲取微信文章的列表(抓搜狗被遮蔽了...).因為我有公眾號的賬號密碼,所以剛開始直接從公眾號的素材管理裡直接抓,但是那個不準,一是上面的時間編輯時間而不是釋出時間,二是,通過從裡面抓取的文章的mid和sn這兩個引數獲取到的點贊數都是0,閱讀數都是2.所以我猜釋出前和釋出後微信是有兩套mid和sn的.多虧了大神,一眼雲煙分享了微信查詢歷史的介面(他抓手機端的包拿到的).反正是http,於是乎我拿來直接用.這樣就搞定了.

呼叫微信查詢歷史資料介面獲取釋出文章的地址.biz這個引數每個公眾號是固定的,可以從連結中取到.只需key和uin就可以獲取到某個公眾號過去一週的文章.介面地址:http://mp.weixin.qq.com/mp/getmasssendmsg

 

拿到文章列表取出biz,mid,sn和idx等引數加上key和uin就可以調介面(http://mp.weixin.qq.com/mp/getappmsgext)獲取點贊數和閱讀數了.需要注意的是UA用手機的UA


Http呼叫返回的json,like_num就是點贊數了.


外掛下載地址:http://download.csdn.net/detail/owen292/8956043