zoukankan      html  css  js  c++  java
  • python笔记--学会使用Fiddler

      Fiddler是一个常见的抓包分析软件,同时我们可以利用它详细地对HTTP请求进行分析,并模拟对应的HTTP请求.

      为什么使用Fiddler软件?

        网络爬虫是自动爬取网页的程序,在爬取的过程中必然涉及客户端和服务端的通信,自然也需要发送一些HTTP请求,并接受服务器返回的结果.在一些稍复杂的网络请求红,我们直接看网址变化时看不出规律的,此时如果要进行自动化爬取网页,就必须要通过程序结果这些请求,而通过程序结果这些请求,就必须首先分析这些请求的规律,所以此时我们要使用工具拦截这些请求,对其分析,这个过程如果使用抓包软件配合进行,则会变得更加轻松.

      Fiddler的基本原理

        在下图可以看出,如果没有Fiddler,本地应用如果要与服务器进行通信,可以直接向服务器发送Request请求,待服务器处理之后将处理结果返回本地,本地应用接受响应response.

        如果有Fiddler,本地应用与服务器之间所有的Request和Response都将经过Fiddler,由Fiddler进行转发,可以看出,此时Fiddler以代理服务器的方式存在,由于所有的网络数据都会经过Fiddler,自然Fiddler能过拦截获取这些数据,始兴县网络数据的抓包.

      Fiddler的基本界面

        在下图中,(1)处指位置为Fiddler的菜单栏,(2)处所指位置为Fiddler的工具栏,(3)处所指为Fiddler的会话栏,我们本地应用与互联网通信的会话信息在此显示,(4)处所指位置是Fiddler的QuickExec命令输入窗口,在此我们可以输入一些Fiddler指定来快速实现某些功能

      Fiddler捕获会话功能

        安装完Fiddler后,我们就学习如何使用它捕获浏览器与服务器之间的会话信息.在此以Firefox火狐浏览器为例,让火狐浏览器使用Fiddler作为其代理服务器,设置火狐浏览器的方法如下:

        首先点击火狐浏览器的设置,在点击高级,在"高级"中将标签切换成"网络".

      随后在"网络"下方看到链接"字样",我们单击"链接"右方的设置,单击后选择"手动配置代理",并将"HTTP"代理设置为"127.0.0.1",端口设置为"8888",因为Fiddler监控的地址是127.0.0.1:8888.设置好之后,点击"确定"

      现在网站有的使用HTTP协议,有的使用HTTPS协议,如果想让Fiddler能够捕获他们,还需要设置下Fiddler,打开Fidddler,然后单击"Tools",选择"Fiddler-->Options",在随后弹出的界面中选择"HTTPS"标签,将下方选项全部勾选上,配置好之后,现在的Fiddler就能捕获火狐浏览器与服务器之间的HTTP和HTTPS会话信息了.

      任意打开一个网址可以看到以一下界面,此时的标签时"Statistics",显示的是一些页面统计信息.

      

      将标签切换为"Inspectors",显示的是一些嗅探细信息,并且该标签下有很多子标签,比如"Headers",字标签表示的网页是一些头信息.

      

      使用QuickExec命令行

      在Fiddler中我们可以使用命令快速完成一些功能,在Fiddler界面中,会话列表下方有一个输入小框,在此介绍一些常用的Fiddler命令.

      1.cls

      cls是清屏命令,输入该命令可以清空会话列表的所有会话,有时候,由于传递的数据增多,在Fiddler会话列表中会出现大量的会话信息,此时界面相对来说比较杂乱,所以在可以输入该命令清空回话信息列表.

      

      

      2.select

      通过select命令我们可以选择出某一类型HTTP会话功能,比如想选择出所有HTML网页类型的HTTP回话,可以输入命令:select html,输入命令后回车可以发现.会话列表中所有html类型的会话都已被选中.

      

      如果想选出所有图片类型的会话信息,可以输入命令:select image

      3.?

      ? 命令可以查找出网址中包含某些字符的会话信息,比如"?pic"可以查找出网址中包含"pic"字符串的会话信息

      

      4. hetlp命令

      help命令可以打开Fiddler官方的使用手册.

      

        

  • 相关阅读:
    python join()阻塞的用法
    python远程批量执行命令
    python多进程,以及进程池并发
    python生产者消费者模型
    python如何保证多个线程同时修改共享对象时不出错!
    python多线程,多进程
    python paramiko模拟ssh登录,实现sftp上传或者下载文件
    python初识1
    验证码的作用和实现原理
    网络应用软件结构-----CS与BS结构(网络基本知识小结)
  • 原文地址:https://www.cnblogs.com/zhaoyang110/p/11509707.html
Copyright © 2011-2022 走看看