如何采集微信公衆号曆史數據
發表時(shí)間:2020-11-12
發布人(rén):融晨科技
浏覽次數:81
本文将介紹一種通過模拟操作微信App的(de)方式采集指定公衆号的(de)所有曆史數據的(de)方法。
通過抓包分析發現,微信公衆号的(de)曆史數據是(shì)通過HTTP協議加載的(de),對應的(de)API接口如下圖所示,其中有四個(gè)關鍵參數(__biz、appmsg_token、pass_ticket以(yǐ)及Cookie)。
爲(wéi / wèi)了(le/liǎo)能夠拿到(dào)這(zhè)四個(gè)參數,需要(yào / yāo)模拟操作App,讓其産生這(zhè)些參數,然後再抓包獲取。
需要(yào / yāo)模拟操作微信完成如下步驟:
-
啓動微信App
-
點擊"通訊錄"
-
點擊"公衆号"
-
點擊要(yào / yāo)采集的(de)公衆号
-
點擊右上(shàng)角的(de)用戶圖像圖标
-
點擊"全部消息"
此時(shí),我們可以(yǐ)從https://mp.weixin.qq.com/mp/profile_ext?action=home的(de)應答數據中捕獲__biz、appmsg_token以(yǐ)及pass_ticket三個(gè)關鍵參數,以(yǐ)及請求頭中的(de)Cookie值。如下圖所示。
有了(le/liǎo)上(shàng)述四個(gè)參數,我們就(jiù)可以(yǐ)構造出(chū)獲取曆史文章列表的(de)API請求,通過調用API接口直接獲取數據(不(bù)需要(yào / yāo)再模拟App操作)。核心參數如下所示,通過改變offset參數,可以(yǐ)拿到(dào)所有曆史數據。
view plaincopy to clipboardprint?
Cookie headers = {‘Cookie’: 'rewardsn=; wxtokenkey=777; wxuin=584068438; devicetype=android-19; version=26060736; lang=zh_CN;
pass_ticket=Rr8cO5c2******3tKGqe7aVZzV9TupvrK+1uHHmHYQGL2WFdKIE;
wap_sid2=COKhxu4KElxckFZQ3QzTHU4WThEUk0zcWdrZjhGcUdYdEVSV3Y1X2NPWHNUakRrd1ZzMnpLTERpdE5rbmxjSTg******dlRBcUNRazZpOGxTZUVEQUTgNQJVO’}
url = ‘https://mp.weixin.qq.com/mp/profile_ext?’ data = {}
data[‘is_ok’] = ‘1’ data[‘count’] = ‘10’ data[‘wxtoken’] = ‘’
data[‘f’] = ‘json’ data[‘scene’] = ‘124’ data[‘uin’] = ‘777’
data[‘key’] = ‘777’ data[‘offset’] = ‘0’ data[‘action’] = ‘getmsg’
data[‘x5’] = ‘0’下面三個(gè)參數需要(yào / yāo)替換
https://mp.weixin.qq.com/mp/profile_ext?action=home應答數據裏會暴漏這(zhè)三個(gè)參數 data[’__biz’] = ‘MjM5MzQyOTM1OQ==’ data[‘appmsg_token’] =
‘993_V8%2BEmfVD7g%2FvMZ****4DNUJNFkg~~’ data[‘pass_ticket’] =
‘Rr8cO5c23ZngeQHRGy8E7gv*****pvrK+1uHHmHYQGL2WFdKIE’ url = url +
urllib.urlencode(data)
以(yǐ)"數字工廠"這(zhè)個(gè)微信公衆号爲(wéi / wèi)例,采集過程運行截圖如下所示:
輸出(chū)結果截圖如下所示:
了(le/liǎo)解更多分析及數據抓取可查看:
http://cloud.yisurvey.com:9081//html/37be8794-b79e-4511-9d0a-81f082bac606.html
本文轉載自互聯網、僅供學習交流,内容版權歸原作者所有,如涉作品、版權和(hé / huò)其他(tā)問題請聯系我們删除處理。
特别說(shuō)明:本文旨在(zài)技術交流,請勿将涉及的(de)技術用于(yú)非法用途,否則一切後果自負。如果您覺得我們侵犯了(le/liǎo)您的(de)合法權益,請聯系我們予以(yǐ)處理。