最近老闆愛上了吃雞,經常拉着我們開黑,只能放棄午休的時間,陪老闆在沙漠裏奔波。 上週在在微信遊戲頻道看戰績的時候突發奇想,是不是可以通過這個方式抓取到很多戰鬥數據,然後分析看看有什麼規律。
第一步、分析數據接口
使用Charles抓包
https加密流量的處理
經過研究,可以通過在手機和電腦都安裝Charles根證書的方式來實現對Https流量的分析
數據接口
接下來就根據這些數據來找出我們需要的接口了,經過分析,主要涉及三個接口
獲取用戶信息接口
獲取用戶戰績列表接口
獲取用戶指定戰績詳細信息接口
下面我們一個一個看
1. 獲取用戶信息接口
request
response
同理獲取用戶戰績列表接口和獲取用戶戰績詳情接口
第二步、爬取數據
使用requests請求接口獲取數據
使用redis來標記已經爬取過的信息
使用celery來管理隊列
然後在task中控制API請求和Redis數據實現完整的任務邏輯,如:
開始抓取
有入口之後我們就用celery來啓動worker去開始爬蟲
通過flower,我們可以看到運行的效率還是非常不錯的。
第三步、數據分析
分析結果
1. 平均用戶日在線時長2小時
從分佈圖上看大部分用戶都在1小時以上,最猛的幾個人超過8小時。
注:我這裏統計的是每一局的存活時間,實際在線時長會比我這個更長。
2. 女性角色被救次數高於男性
終於知道爲什麼有那麼多人妖了,原來在遊戲裏面可以佔便宜啊。
3. 女性角色救人次數高於男性
給了大家一個帶妹上分的好理由。
4. 週五大家最忙
估計週五大家都要忙着交差和寫週報了。
5. 晚上22點是遊戲高峯
凌晨還有那麼多人玩,你們不睡覺嗎?
6. 最遠擊殺距離639米
我看了一下98K、SKS 和 AWP 的有效射程,大致都在 800 米以內,所以這個值可信度還是可以的。 反過來看抖音上的那些超遠距離擊殺應該都是擺拍的。
7. 能拿到「救死扶傷」稱號纔是最高榮耀
從分佈情況可以看出來,救死扶傷比十殺還要難。
能拿到救死扶傷稱號的大部分都是女性角色,再一次證明玩遊戲要帶妹。 迴歸到這個遊戲的本質,那就是生存遊戲,沒什麼比活下來更重要的了。
如果你依然在編程的世界裏迷茫,可以加入我們的Python學習扣qun:784758214,看看前輩們是如何學習的。交流經驗。從基礎的python腳本到web開發、爬蟲、django、數據挖掘等,零基礎到項目實戰的資料都有整理。送給每一位python的小夥伴!分享一些學習的方法和需要注意的小細節,點擊加入我們的 python學習者聚集地
結尾
這次爬蟲主要是利用了微信遊戲頻道可以查看陌生人數據的場景才能提取到這麼多數據。我們可以通過同樣的手段來分析王者榮耀和其它遊戲的數據,有興趣的同學可以嘗試一下。