当前位置: 首页 > 后端技术 > Python

《Python爬虫》抓包工具Fiddler入门教程

时间:2023-03-26 11:50:06 Python

现在Python爬虫越来越流行。想学习Python爬虫的朋友可以到gzh【Python编程学习圈】领取系统学习资料和教程视频,分享一些海量技术干货文章可以阅读学习,欢迎大家关注学习。传统的抓包工具,比如:Fiddler、Charles、Wireshark、Tcpdump,想必大家都不陌生;今天我们就来说说这款常用的抓包工具:Fiddler;Fiddler简介Fid??dler是一个非常好用的抓包工具,也是比较好用的web代理调试工具之一;它可以记录和检查所有客户端和服务器的HTTP/HTTPS请求,设置断点,篡改和伪造请求/响应数据;修改主机、限制网速、HTTP请求性能统计、简单并发、接口测试、辅助自动化测试等,也可以用来检测网络安全。Fiddler等抓包工具①Firebug虽然可以抓包,但是分析http请求的细节不够强大,模拟http请求的功能也不够。而firebug往往要求“不刷新修改”。如果刷新页面,则不会保存所有修改;②Wireshark:通用的抓包工具,可以获取HTTP和HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS里有什么。但如果是TCP或者UDP协议,可以使用wireshark;③Httpwatch也是常用的http抓包工具,但只支持IE和firefox浏览器(其他浏览器可能有相应的插件);而Fiddler是本地127.0.0.1:8888HTTP代理,任何可以设置HTTP代理为127.0.0.1:8888的浏览器和应用程序都可以使用Fiddler。CrawlersandFiddler:在一些稍微复杂的网络请求中,我们无法通过查看url的变化直接看出规则。如果我们要自动爬取,就必须通过程序构造这些请求,分析这些请求的规则。在登录的时候,很多网页真正的登录处理并不是我们看到的URL,而这些URL一般需要通过工具来解析。在分析过程中,抓包软件的配合会变得更加方便。Fiddler的工作原理Fiddler以代理WEB服务器的形式工作。它默认使用代理地址:127.0.0.1和端口:8888。Fiddler启动时会自动设置代理,退出时会自动退出代理,这样不会影响其他程序。但是如果Fiddler异常退出,由于此时Fiddler不会自动退出,会导致网页无法访问。解决方法是重启Fiddler;Fiddler界面Fiddler要抓取数据包,确保CaptureTraffic开启,在File–>CaptureTraffic。开启后,左下角会有显示。当然,您也可以直接点击界面底栏左下角的图标来关闭/开启抓包功能。左侧Web会话面板左侧面板字段和图标的含义;右侧右侧面板是详情和数据统计面板;1)统计HTTP请求的性能(如发送/接收的字节数,发送/接收的时间,粗略统计全球访问服务器的时间)和数据分析。2)Inspectors用于查看session的内容,上半部分是请求的内容,下半部分是响应的内容;提供headers、textview、hexview、Raw等查看单个http请求的请求报文信息。3)AutoResponder可用于拦截请求,即根据自己添加的指定规则重定向到本地资源或Fiddler资源,从而代替服务器响应。4)Composer自定义请求发送服务器。在Parsed模式下,你只需要提供一个简单的URLS地址;5)Filter是过滤规则。通过设置过滤规则过滤需要的http请求,勾选UseFilters启用过滤设备。内外网过滤:主机过滤:输入多个HOST,以逗号或回车分隔;支持通配符:*、baidu.com;下面介绍两个最常用的过滤条件:Zone和Host;\Zone指定只显示内网(Intranet)或互联网(Internet)的内容;Host指定显示某个域名下的session;6)timeline请求响应时间,在左侧session窗口点击一个或多个请求,Timeline会显示会显示指定内容从服务端传输到客户端的时间:Fiddler设置代理Fiddler是个不错的抓包工具。默认情况下,它捕获http请求。pc端的https请求,会提示网页不安全。这时候需要在浏览器上安装证书。谷歌、IE浏览器谷歌浏览器、IE浏览器启动时默认会读取系统代理,所以启动后只需要将Fiddler设置为系统代理即可。设置启动为系统代理——点击工具->选项->连接;这样设置后,当我们在GoogleChrome和IE浏览器访问HTTP请求时,Fiddler工具左侧会显示请求,但是HTTPSRequest却没有显示出来?原因是Fiddler作为代理服务器,可以代理HTTPS请求。但是HTTPS可以理解为HTTPS=HTTP+SSL/TLS,也就是HTTPS是加密的,是有证书的,所以我们需要配置解密HTTPS,安装证书。配置解密HTTPS并安装证书-点击工具->选项->HTTPS。检查证书是否安装成功。在浏览器中访问HTTPS页面也可以在Fiddler中显示;在Fiddler断点功能的通信过程中,在传输过程中修改信息,然后传递下去,就可以使用FiddlerFunction的断点功能了。(1)利用Fiddler的断点,可以实现的功能:拦截响应数据,并相应修改请求数据中的头部信息,实现相应的功能,比如模拟用户请求等功能构建请求数据,提交数据断点随意可以打两个地方:beforeresponse:这是请求请求的时候,在它到达服务器之前。afterresponse:即服务端响应之后,Fiddler将响应返回给客户端之前。Breakpointrequest/response如图箭头所指位置可以点击,一共有三种状态:空白:没有设置断点。向上箭头:指示断点请求。此时客户端的请求无法直接到达目标服务器,需要人工控制。向下箭头:表示断点响应。此时目标服务器的响应无法直接到达客户端,需要人工控制。还有一个突破点的方法:在命令行中输入命令;bpuwww.baidu.com(断点请求)bpuafterwww.baidu.com(断点响应)该方法只会中断www.baidu.com;断点请求及修改操作步骤:设置断点请求,访问网页,点击相应会话查看请求消息信息,修改请求内容,完成断点,释放,将请求发送到目标服务器。图中的BreakOnResponse表示向服务器发送请求,但是服务器的响应被fiddler拦截,此时可以修改响应内容(类似于断点响应)。->断点响应和修改类似于断点请求操作,只是修改响应区的消息信息。响应断点时要注意超时。->在Fiddler中拦截请求:F11先开始拦截,然后在发送请求时修改拦截的请求,修改数据shift+F11关闭拦截运行完成,将所有拦截的请求发送过去->在Fiddler中拦截响应:alt+F11开始截取修改数据shift+F11关闭截取运行完成,将修改请求发送到断点命令。断点命令可以精确设置那些需要拦截的请求,如下表所示:注:如bpafter断点命令使用方法为:bpafter后跟一个字符串->表示中断所有包含该字符串的请求;bpafter->表示释放刚才的中断断点;该命令设置断点响应断点bqafter百度,你会知道www.baidu.com为响应断点bqafter取消响应断点请求断点bp百度,你会知道请求断点bp取消请求断点为www.baidu.com,讲解配置手机抓包的过程。配置Android手机Fiddler配置中Connections中的设置,允许远程连接和端口号。手机端设置:手机端和Fiddler工具所在的电脑在同一网络。查看电脑IP地址,移动网络代理指定为电脑IP地址;打开连接上的设置>WLAN>WLAN设置,点击代理>手动,主机名设置为Fiddler所在主机的IP,端口为Fiddler监听端口。安装Fiddler证书;?用浏览器打开证书地址,点击页面下方的FiddlerRoot证书下载证书,打开设置>安全>更多安全设置>加密和凭证>从存储设备安装,选择下载的FiddlerRoot.cer进行安装。在浏览器中打开目标地址,已经可以抓取HTTPS包;注意:测试后记得关闭代理,否则手机将无法上网!最后再多说一句:请谨慎使用Fiddler!