首先,神槍鎮樓
背景
秀一波戰績,開黑情況下我們團隊吃雞率非常高,近100場吃雞次數51次
簡單評估了一下,覺得可行,咱就擼起袖子幹。
Step 1 分析數據接口
https加密流量的處理
經過上述的配置,我們已經可以讀取到https的請求和響應數據了,如下圖所示。
- windows下用findler可以實現相同的功能
- 其實這就是一個非常典型的中間人場景
API/cgi-bin/gamewap/getpubgmbattlelist方法GET參數openid、pass_ticket、plat_id、after_time、limitcookiekey pass_ticket、uin、pgv_pvid、sd_cookie_crttime、sd_userid
- response
2. 獲取用戶戰績列表接口
- 分析
openid是用戶的惟一標識。
2. 獲取用戶戰績列表接口
- 分析
- 這個接口用after_time來進行分頁,遍歷獲取時可以根據接口響應的has_next和next_after_time來判斷是否還有下一頁的數據。
- 列表裡面的room_id是每一場battle的惟一標識。
3. 獲取用戶戰績詳情接口
- request
- request
使用celery來管理隊列
celery是一個非常好用的分佈式隊列管理工具,我這次只打算在我自己的電腦上運行,所以並沒有用到分佈式的功能。 我們創建三個task和三個queue
開始抓取
因為我們是發散是爬蟲,所以需要給代碼一個用戶的入口,所以需要手動創建一個用戶的採集任務
通過flower,我們可以看到運行的效率還是非常不錯的。
在執行過程中會發現get_battle_list跑太快,導致get_battle_info即使開了30個併發都還會積壓很多,所以需要適時的去停一下這些worker。 在我們抓到20萬條信息之後就可以停下來了。
分析結果
1. 平均用戶日在線時長2小時
從分佈圖上看大部分用戶都在1小時以上,最猛的幾個人超過8小時。
注:我這裡統計的是每一局的存活時間,實際在線時長會比我這個更長。
2. 女性角色被救次數高於男性
終於知道為什麼有那麼多人妖了,原來在遊戲裡面可以佔便宜啊。
3. 女性角色救人次數高於男性
給了大家一個帶妹上分的好理由。
4. 週五大家最忙
估計週五大家都要忙著交差和寫週報了。
5. 晚上22點是遊戲高峰
凌晨還有那麼多人玩,你們不睡覺嗎?
能拿到救死扶傷稱號的大部分都是女性角色,再一次證明玩遊戲要帶妹。 迴歸到這個遊戲的本質,那就是生存遊戲,沒什麼比活下來更重要的了。
結尾
這次爬蟲主要是利用了微信遊戲頻道可以查看陌生人數據的場景才能提取到這麼多數據。我們可以通過同樣的手段來分析王者榮耀和其它遊戲的數據,有興趣的同學可以嘗試一下。 最後再說一下,UMP9 是把好槍,配 2 倍鏡非常爽。
私信小編007即可獲取源碼和十套PDF哦!
閱讀更多 繁華落盡and曲終人散 的文章