上一篇文章中不知道大家發現端倪木有,兩張照片對比很明顯發現第一張是信息很明顯的,第二張是亂碼的。 為什麼會出現這種情況?細心的童鞋可能發現是我們發送給伺服器的請求連接的數據不同: 第一張圖的信息是{"roomid":98284,"uid":271298361556770} 第二張圖的信息是{"uid ...
上一篇文章中不知道大家發現端倪木有,兩張照片對比很明顯發現第一張是信息很明顯的,第二張是亂碼的。
為什麼會出現這種情況?細心的童鞋可能發現是我們發送給伺服器的請求連接的數據不同:
第一張圖的信息是{"roomid":98284,"uid":271298361556770}
第二張圖的信息是{"uid":276194535568357,"protover":2,"roomid":98284}
roomid是真實的房間號,uid是隨機生成的一串數字,可以直接複製登錄。
相比而言,第二張多了個"protover":2參數。其實第一張圖是抓取手機客戶端的數據包,第二張圖是抓取電腦網頁數據包。所以有沒有這個"protover":2這個參數都是可以連接到彈幕伺服器的。
所以我們可以推斷抓包的最容易抓的數據是手機端,其次是wap端,最後才是電腦端。
但是好多時候我們抓包數據的都是如圖二所示的一串串亂碼,不管你用utf8還是用gbk編碼都達不到圖一的那種效果。
這種數據其實是一種壓縮數據gzip,目前wireshark還不支持這種壓縮數據的解壓模式。
現在網站在傳輸中基本上都是用壓縮模式進行傳輸的,所以你抓取到的數據是壓縮後的數據,在你看來就是徹徹底底的亂碼,無從下手。
如圖所示,訪問我的博客首頁http://www.cnblogs.com/keinlee/,抓取伺服器傳送回來的網頁數據是gzip模式,而我們平時訪問的網頁是經過瀏覽器解壓數據並渲染然後呈現給我們。
既然分析嗶哩嗶哩伺服器傳送的是gzip數據,那麼解決辦法就很簡單了,安裝第三方zlib包或者gzip包都可以解決這個問題。
系列上一章:python - bilibili(三)wireshark分析