2017.11.2
關(guān)于fiddler抓包
用fiddler連接ios:
按照網(wǎng)上的方法建立連接后孙援,“safari提示無法建立安全連接”颜阐。
媽耶跪解,感謝團(tuán)隊(duì)里面的大佬,幫我解決了這個(gè)問題楷兽。
iPhone系統(tǒng)更新到iOS 10.3以后,設(shè)置fiddler代理抓包地熄,會(huì)出現(xiàn)無法抓取https請求,app請求失敗的問題
這是因?yàn)樵趇OS 10.3之前,當(dāng)你將安裝fiddler的自定義證書后,iOS會(huì)默認(rèn)信任,不需要進(jìn)一步的設(shè)置芯杀。而iOS 10.3之后,安裝新的自定義證書默認(rèn)是不受信任的端考。
如果要信任已安裝的自定義證書,就需要去手工設(shè)置。
設(shè)置方式:
設(shè)置->通用->關(guān)于本機(jī)->證書信任設(shè)置->找到 fiddler證書揭厚,打開信任開關(guān)
然后就愉快的抓包吧却特!
我們這次抓取的是某動(dòng)某車某手app里面的攻略文章,手機(jī)端上進(jìn)行瀏覽后就可以看到HTTPS的包筛圆,點(diǎn)開就可以看到j(luò)son格式下的數(shù)據(jù)裂明,在body上右鍵send to textwizard進(jìn)行解碼,然后就可以保存到本地文件。
接口網(wǎng)址的尋找:
在手機(jī)端訪問攻略文章列表的時(shí)候太援,發(fā)現(xiàn)請求了這個(gè)url:
對它右鍵保存url闽晦。復(fù)制到瀏覽器中打開發(fā)現(xiàn)就是接口url。然而顯示的內(nèi)容和app上顯示的并不一樣提岔,這是因?yàn)橹苯哟蜷_是GET請求仙蛉,而這個(gè)接口需要進(jìn)行post請求。
我們通過python代碼來模擬以下直接訪問:
在此之前特別說明碱蒙,在python3之后荠瘪,urllib和urllib2合二為一
import json
import urllib.request
response = urllib.request.urlopen("https://www.evyou.cc/appserver/getCommunityArticleForApp.do")
hjson = json.loads(response.read())
print(hjson)
#果然和網(wǎng)站顯示內(nèi)容一致
題外話:關(guān)于json.load和json.loads:
這個(gè)load下沒有read屬性,而loads有振亮。
load針對文件句柄巧还,loads針對內(nèi)存對象。
接下來我們就用pycharm來模擬post請求坊秸,雖然fiddler可以重放請求,但重在學(xué)習(xí):
參考一篇python requests的博文:
import requests
payload = {'articleType':'2','page':'1','pageSize':'10'}
r = requests.get("https://www.evyou.cc/appserver/getCommunityArticleForApp.do",params=payload)
hjson = r.json()
print(hjson)
#結(jié)果就和在app上點(diǎn)開的一樣
這個(gè)時(shí)候你肯定會(huì)問澎怒,我怎么知道post的這些參數(shù)褒搔?別忘了你的fiddler: