Windows11下载Fiddler不能抓取数据除了常见的添加证书、设置系统代理外,还有个原因是Intrernet Explorer。
Fiddler配置一切正常后使用Chrome、Edge、Firefox等浏览器抓不到任何数据。你可能在网上查找各方面原因,无非就是代理、证书出了问题,当你按照网上的方法配置好一切后,仍然发现抓不到数据。
不要放弃,利用以下的方法可让你的fiddler抓取到数据,不过此方法并不是持久之计,稍后将讲解问题出现原因及应对方法。
首先进入Edge浏览器的设置→默认浏览器,进行如下操作,添加:http://www.baidu/。
此时使用Edge打开百度和百度里的网页,将发现Fiddler成功抓取数据,不过此时访问除百度外的网页时,仍无法抓取数据。即此时进入百度网页,其实使用的是Internet Explorer浏览器,使用Internet Explorer打开的网页能抓取数据。
这是为什么呢?进入Edge浏览器的设置→系统和性能→打开计算机的代理设置:
将发现自动检测设置已关闭,使用代理服务器已开启。点击编辑:
这是fiddler自动设置的,即Act as system proxy on startup。Fiddler打开后将自动设置为浏览器代理(Firefox除外),fiddler关闭后浏览器恢复为原系统代理设置:
理论上fiddler可以自动为浏览器设置代理,但Firefox是个例外,需手动配置。进入Firefox,在设置中查找代理并点击设置:
点击手动配置代理,地址为fiddler代理地址(不知道的去上面Edge浏览器代理IP地址看,是一样的),并勾选也将此代理用于HTTPS:
点击确定后,进入Firefox的任何网页,Fiddler都可以成功抓包。需注意Firefox使用的是Fiddler代理,即网络信息传输通过Fiddler到Firefox,关闭Fiddler,Firefox无法上网,此时关闭Firefox的手动配置代理即可正常上网。
总结一下现在面临的问题。
以下IE指Internet Explorer浏览器。
把Fiddler设置系统代理后,会自动设置为Chrome和Edge和IE的代理(IE能抓包,但Chrome和Edge不能抓包,关闭Fiddler后三个浏览器都能用)
Firefox需要手动设置代理为Fiddler(此时能抓包,关闭Fiddler后需要把手动代理关闭后才能使用Firefox)
原因分析
Fiddler设置系统代理,理论上打开后将自动设置Chrome和Edge的代理,但实际上设置的是成为了IE的代理,并未直接设置为Chrome和Edge的代理。
打开Chrome和Edge设置中的代理,都将自动进入:
打开Firefox设置的代理,将进入:
观察两者进入的不同界面,可以分析出:
Firefox设置代理将进入Firefox代理界面Chrome和Edge设置代理将进入网络和Internet代理界面(即进入IE代理)
IE浏览器是Windows自带浏览器。
Fiddler自动设置代理只对IE有效。
Firefox手动设置/关闭代理有效但不方便,Chrome和Edge不能通过Fiddler自动设置代理也不能直接手动设置。
即并没有真正把Fiddler设置为Chrome和Edge的代理。
所以Fiddler能抓取IE和Firefox,而不能抓取Chrome和Edge。
上述问题仅在Windows11中存在,重装Windows11后,仍存在上述问题。
更多推荐
Fiddler不能抓取数据原因分析Windows11
发布评论