2017.11.2
关于fiddler抓包
用fiddler连接ios:
按照网上的方法建立连接后,“safari提示无法建立安全连接”。
妈耶,感谢团队里面的大佬,帮我解决了这个问题。
iPhone系统更新到iOS 10.3以后,设置fiddler代理抓包,会出现无法抓取https请求,app请求失败的问题
这是因为在iOS 10.3之前,当你将安装fiddler的自定义证书后,iOS会默认信任,不需要进一步的设置。而iOS 10.3之后,安装新的自定义证书默认是不受信任的。
如果要信任已安装的自定义证书,就需要去手工设置。
设置方式:
设置->通用->关于本机->证书信任设置->找到 fiddler证书,打开信任开关
然后就愉快的抓包吧!
我们这次抓取的是某动某车某手app里面的攻略文章,手机端上进行浏览后就可以看到HTTPS的包,点开就可以看到json格式下的数据,在body上右键send to textwizard进行解码,然后就可以保存到本地文件。
接口网址的寻找:
在手机端访问攻略文章列表的时候,发现请求了这个url:
对它右键保存url。复制到浏览器中打开发现就是接口url。然而显示的内容和app上显示的并不一样,这是因为直接打开是GET请求,而这个接口需要进行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)
#果然和网站显示内容一致
题外话:关于json.load和json.loads:
这个load下没有read属性,而loads有。
load针对文件句柄,loads针对内存对象。
接下来我们就用pycharm来模拟post请求,虽然fiddler可以重放请求,但重在学习:
参考一篇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)
#结果就和在app上点开的一样
这个时候你肯定会问,我怎么知道post的这些参数?别忘了你的fiddler:
网友评论