1. 程式人生 > >利用Fiddler抓取APP資料

利用Fiddler抓取APP資料


軟體:Fiddler
系統:Windows10
手機:MX4 PRO

Fiddler安裝和設定

通過地址下載Fiddler安裝包(點選即可跳轉),安裝完成後需要進行簡單的設定。
開啟Fiddler進入選單欄Tools > Telerik Fiddler Options > HTTPS

HTTPS
HTTPS

分別將Decrypt HTTPS traffic(截獲HTTPS請求)和Ignore server certificate errors(unsafe)(允許別的機器把HTTP/HTTPS請求傳送到Fiddler)打勾,埠號預設8888

Paste_Image.png
Paste_Image.png

獲取電腦IP

Windows系統在Dos命令下輸入ipconfig後回車,找到本機網路連線的IP地址,如下圖192.168.3.75

Paste_Image.png
Paste_Image.png Paste_Image.png
Paste_Image.png

設定手機

使用Android手機開啟手機連線與電腦同個無線網路,找到代理設定進行手動設定,伺服器填電腦的IP地址192.168.3.75,埠號填8888,點選儲存設定。接著開啟手機瀏覽器,訪問192.168.3.75:8888,點"FiddlerRoot certificate" 然後安裝證書。

代理設定
代理設定
安裝證書
安裝證書

使用手機抓包

以沃·行訊通為例,手機安裝APP開啟後點擊“的士”後就就可以到Fiddler裡面找到狀態碼200,Host為nxxt.gzyyjt.net:8008/的抓包資訊,右側的JSON裡面可以看到車輛的資料,下一步我們就來解析這些資料。


Fiddler介面
Fiddler介面

使用Python處理JSON資料

用requests模組可以直接解析json字串,再迴圈遍歷所有資料並打印出來。

import requests


url = 'http://nxxt.gzyyjt.net:8008/xxt_app/taxi/getByCoord?reqpara=%7B%22devno%22%3A%22ffffffff-bb40-f2c5-388e-665a7c890a3e%22%2C%22devtype%22%3A0%2C%22direc%22%3A0%2C%22gpstime%22%3A1478156331262%2C%22lat%22%3A23.103395%2C%22lng%22%3A113.314984%2C%22speed%22%3A0%2C%22uid%22%3A159521%2C%22version%22%3A%223.1.1.0%22%2C%22versiontype%22%3A1%7D&longitude=113.314984&latitude=23.103395&range=500&pagesize=10000&_=1478156330868'
response = requests.get(url).json()

for car in response['retData']:
    plate_num = car['plateNum']
    longitude = car['mapCoord']['x']
    latitude = car['mapCoord']['y']
    print plate_num, longitude, latitude