Fiddler:学习scrapy,不只是满足于网页上爬去信息的成功乐趣,现在开始接触爬去手机信息了,不好解决,知道过程不会轻松,但自己想去尝试。QAQ

写这篇博客是基于以下的几位大神学习笔记,我只是做下总结,里面会有具体的图片信息:

  1. https://blog.csdn.net/playstudy/article/details/18921967
  2. https://blog.csdn.net/a877415861/article/details/79447440
  3. https://www.cnblogs.com/miantest/p/7289694.html

Fiddler:基础知识

  1. Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。
  2.  
  3. 代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;
  4. 同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。
  5.  
  6. Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。

HTTP协议

  1. 要分析Fiddler抓取的数据包,我们首先要熟悉HTTP协议。HTTP即超文本传输协议,是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发,
  2. 都是构建在HTTP协议之上的Web应用。
  3.  
  4. HTTP的工作过程:当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;
  5. 服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容

Fiddler的安装

  1. 1.下载安装包:"http://www.downza.cn/soft/234727.html"
  2. 2.下载.net framework 4.6.2 x64(Fiddler Orachestra Beta会需要):"https://www.fixdown.com/soft/3178.html"

Fiddler的配置(手机和电脑连接同一网络)

  1. 1)Fiddler, Tools-> Fiddler Options
  2. HTTPS:
  3. 1.选中"Fiddler, Tools-> Fiddler Options"——Fiddler就可以截获HTTPS请求
  4. 2.选中"Ignore server certificate errors".
  5. Connections
  6. 1.选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来
  7. 2)查看本机Ip
  8. ipconfig(192.168.5.147)
  9. 3)IPhone设置代理
  10. 设置 -> 无线局域网 -> 已连接网络旁边的蓝色感叹号 -> 设置代理
  11. 服务器:192.168.5.147
  12. 端口:8888
  13. 4)打开IPhone Safari, 访问 http://192.168.5.147:8888,点"FiddlerRoot certificate" 然后安装证书
  14. 5)检查是否设置成功
  15. Iphone:Safari输入:"http://www.cr173.com/z/qvodplayer/."查看Fiddler能否捕获

Fiddler使用

  1. Fiddler支持断点调试技术,当你在软件的菜单—rulesautomatic breakpoints选项选择before request,或者当这些请求或响应属性能够跟目标的标准相匹配,
    Fiddler就能够暂停Http通讯,并且允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来演习。
  2.  
  3. 通过显示所有的Http通讯,Fiddler可以轻松地演示哪些用来生成一个页面,通过统计页面(就是Fiddler左边的那个大框)用户可以很轻松地使用多选,
  4. 来得到一个WEB页面的“总重量”(页面文件以及相关js,css等)你也可以很轻松地看到你请求的某个页面,总共被请求了多少次,以及多少字节被转化了。
  5.  
  6. 用户可以加入一个Inspector插件对象,来使用.net下的任何语言来编写Fiddler扩展。
    RequestInspectors ResponseInspectors提供一个格式规范的,或者是被指定的(用户自定义)Http请求和响应视图。

Fiddler软件信息栏

  1. 基本信息:
  2. #:顺序号,按照抓包的顺序从1递增
  3. ResultHTTP状态码      
  4. Protocol:请求使用的协议,如HTTP/HTTPS/FTP
  5. HOST:请求地址的主机名或域名
  6. URL:请求资源的位置
  7. Body:请求大小
  8. Caching:请求的缓存过期时间或者缓存控制值
  9. Content-Type:请求响应的类型
  10. Process:发送此请求的进程ID
  11. Comments:备注
  12. Custom:自定义值

Fiddler的QuickExec的简单使用

  1. 1cls
  2. cls清屏命令,输入该命令可以清空会话列表中所有会话cls清屏命令,输入该命令可以清空会话列表中所有会话
  3. 2select
  4. 通过select命令可以选择出某一类型HTTP会话的功能。
  5. 比如选择出所有的html类型的HTTP会话,命令:select html
  6. 比如选择出所有的图片类型的HTTP会话,命令:select image
  7. 3、?
  8. ?命令可以查找出网址中包含某些字符的会话信息,比如“?baidu”可以查找出网址中包含“baidu”字符串的会话信息。
  9. 4help
  10. 执行该命令可以打开Fiddler官方使用手册。
  11. 5、>,<
  12. 请求body大小的范围
  13. 6、=
  14. 匹配HTTP返回码(=200)
  15. 7、@
  16. @后面跟Host,可以匹配域名(@www.baidu.com)
  17. 8dump
  18. 将所有请求打包成saz压缩包,保存到“我的文档\Fiddler2\Captures”目录下
  19. 9start
  20. 开始监听请求
  21. 10stop
  22. 停止监听请求

Insepector:请求(即客户端发出的数据)和响应(服务器返回的数据)

  1. HTTP Request Headers:
  2. 请求方式:GET
  3. 协议: HTTP/1.1
  4. Client 头域:
  5. Accept: text/html, application/xhtml+xml, image/jxr, */* ---------浏览器端可以接受的媒体类型
  6. Accept-Encoding: gzip, deflate ---------压缩方法
  7. Accept-Language: zh-CN ---------语言类型
  8. User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
              ---------客户端使用的操作系统和浏览器的名称和版本
  9. COOKIE头域:将cookie值发送给服务器
  10. Transport 头域:
  11. Connection:当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,
  12. 客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。
  13. HOST:主机名或域名,若没有指定端口,表示使用默认端口80.
  14. HTTP Response Headers:
  15. 协议:HTTP/1.1
  16. 状态码:200
  17. Cache头域:
  18. Cache-Control: private ---------此响应消息不能被共享缓存处理,对于其他用户的请求无效
  19. Date: Sat, 05 Aug 2017 04:37:43 GMT ---------生成消息的具体时间和日期
  20. Expires: Sat, 05 Aug 2017 04:37:42 GMT ---------浏览器会在指定过期时间内使用本地缓存
  21. Cookie/Login 头域:
  22. Set-Cookie: BDSVRTM=264; path=/ ---------把cookie发送到客户端
  23. Set-Cookie: BD_HOME=1; path=/
  24. Set-Cookie: H_PS_PSSID=1425_21097_22157; path=/; domain=.baidu.com
  25. Entity头域
  26. Content-Length: 202740 ---------正文长度
  27. Content-Type: text/html;charset=utf-8 ---------告知客户端服务器本身响应的对象的类型和字符集
  28. Miscellaneous 头域:
  29. Bdpagetype: 2
  30. Bdqid: 0x99791efd00036253
  31. Bduserid: 2577220064
  32. Server: BWS/1.1 ---------指明HTTP服务器的软件信息
  33. X-Ua-Compatible: IE=Edge,chrome=1
  34. Security头域:
  35. Strict-Transport-Security: max-age=172800 ---------基于安全考虑而需要发送的参数:http://www.freebuf.com/articles/web/66827.html
  36. Transport头域:
  37. Connection: Keep-Alive
  38.  
  39. 6)TextView:显示请求或响应的数据。
  40. 7)WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。
  41. 8)Auth:显示认证信息,如Authorization
  42. 9)Cookies:显示所有cookies
  43. 10)Raw:显示Headers和Body数据
  44. 11)JSON:若请求或响应数据是json格式,以json形式显示请求或响应内容
  45. 12)XML:若请求或响应数据是xml格式,以xml形式显示请求或响应内容
  46. 13)上面是以百度主页为例,百度主页采用的是GET请求,在TextView中没有请求body,我们再以无忧行网站登录接口为例,它是一个POST请求,除了请求头外,在TextView中多了请求数据。
  47. GET请求是将请求参数放在url中,而POST请求一般是将请求参数放在请求body中。

Fiddler断点功能

  1. 通信过程中,在传递信息的中间进行修改后在传递,那么就可以使用Fiddler的断点功能。
  2. 1、使用Fiddler的断点,可以实现的功能:
  3. 拦截响应数据,并进行相应修改。
  4. 修改请求数据中的头信息,实现相应功能,比如模拟用户请求等功能。
  5. 构建请求数据,随意进行数据提交。
  6. 2Fiddler断点功能分为两种类型:
  7. 响应时断点 Response断点
  8. 请求时断点 Resquest断点
  9.  
  10. 设置响应断点方法有两种:
  11. 通过可视化操作设置
  12. - Before Requests:拦截所有发送给服务器的请求
  13. - After Responses:拦截所有服务器返回的session
  14. - Disabled :取消断点
  15. 1.中断设置
  16. 单击Fiddler中的Rules–>Automatic Breakpoints–>After Responses
  17. 2.取消响应中断设置
  18. 单击Fiddler中的Rules–>Automatic Breakpoints–>Disabled
  19.  
  20. 通过命令去设置。
  21. 1.响应断点
  22. bpafter www.baidu.com www.baidu.com进行响应断点
  23. bpafter 取消响应断点
  24. 2.请求断点
  25. bpu www.baidu.com www.baidu.com进行请求断点
  26. bpu 取消请求断点

遇到的问题:

  1. 1)执行fiddler文件下fiddler.exe 提示下载.net framework
  2. 2)解决Fiddler "creation of the root certificate was not successful”
  3. 1.cd "d:\Program Files\Fiddler"--进入Fiddler所在文件
  4. 2.makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com"
        -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2020(大于当前时间)
  5. 3)配置浏览器代理:(开启fiddler时,该程序会自动配置浏览器代理,导致无法无法上网)
  6. 1.chrome -> 设置 -> 高级 -> 打开代理设置 -> 连接 -> 局域网设置 -> 代理服务器:不勾选"为LAN使用代理服务器"
  7. 地址:192.168.5.147 端口:8888
  8. 2.Fiddler软件会提示"The system proxy was changed.Click to reenable capturing",点击之后,Fiddler会设置浏览器代理
  9. 4)只能捕获HTTP,而不能捕获HTTPS的解决办法
  10. 1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone,点”设置“->“通用”->"描述文件")
  11. 2. 安装上面的方法,重新安装Fiddler证书

Fiddler(一)的更多相关文章

  1. fiddler发送post请求

    1.指定为 post 请求,输入 url Content-Type: application/x-www-form-urlencoded;charset=utf-8 request body中的参数格 ...

  2. [转]Fiddler抓取Android真机上的HTTPS包

    此篇文章转载自:http://blog.csdn.net/roland_sun/article/details/30078353 工作中经常会需要对一些app进行抓包, 但是每次默认都是只抓http请 ...

  3. 从Fiddler抓包到Jmeter接口测试(简单的思路)

    备注:本文为博主的同事总结的文章,未经博主允许不得转载. Fiddler下载和配置安装 从网上下载fiddler的安装包即可,直接默认,一直点击下一步,直至安装完成. 安装完成后直接打开Fiddler ...

  4. web开发调试神器——fiddler的使用

    好累 以后再写 http://docs.telerik.com/fiddler/knowledgebase/autoresponder

  5. 用Fiddler模拟低速网络环境

    有时候宽频网路用习惯了… 在开发的过程就比较少去考虑最佳化的问题… 但当有人反应说「你的网页好慢」甚至当网路速度慢,会造成你的网页跳出什么啊哩不哒的bug时要如何重现呢? 我们可以用Fiddler 这 ...

  6. 使用Fiddler抓取手机请求

    使用Fiddler抓取手机请求 Fiddler 手机 今天想尝试在手机上抓包,发现一个好玩的小工具——Fiddler. Fiddler是一个专门的抓包工具,可以模拟请求,修改请求,手机应用调试等.还是 ...

  7. 如何用fiddler对ios抓包

    fiddler端设置:(配置好重启fiddler) 1.首先下载安装fiddler,我安装的是fiddler4 2.Tools->Telerik Fiddler Options->HTTP ...

  8. Fiddler抓包工具使用基础

    官网下载Fiddler Fiddler的官方网站:  www.fiddler2.com Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监 ...

  9. [fiddler] 使用fiddler script自定义代理规则

    场景 fiddler作为调试代理工具,可以捕获电脑与互联网之间所有http通讯. 通过可视化操作或命令行可以按某些规则截获特定请求并修改,但当我们需要批量对请求进行更复杂的逻辑操作时,则不是很方便. ...

  10. Fiddler替换HTTP Request Host

    原文链接:http://caibaojian.com/fiddler.html 这边指的替换HTTP Request Host是,所有原先发到a.com的HTTP Request , Fiddler都 ...

随机推荐

  1. 第一个flask程序

    flask简介: flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin  Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正 ...

  2. 网页设计和制作,数学,access 2010

    网页设计和制作 插入特殊字符:插入---字符---其他字符---选择字符---完成. 插入水平线:插入---字符---水平线---右键---选择第二个框---改变颜色---完成. 插入项目类表:选择要 ...

  3. 2019.3.26判断是否回文(java实现)

    我所有的文章都是对我总结学习的总结,那里不好或者冒犯了那里,我先对您说声对不起,请告知我进行改正. 今天java老师作业题目是判断是一个字符串否是回文: emmmm,我的思路是将字符串逆序,然后使用方 ...

  4. jQuery遍历节点

    html代码 <div> <p>武汉长乐教育</p> <span>在哪才能真正学习会PHP技术?</span> <a href=&qu ...

  5. Eclipse 如何修改 Web 项目的名称

    Eclipse 切换到  Navigator 视图,能显现出项目下所有的文件便于修改. 1.修改该项目目录下:.project文件 <projectDescription><name ...

  6. Linux CentOS下部署Java Web项目

    本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...

  7. "ssllabs" website and "testssl" website

    "https://www.ssllabs.com" could scan your server and give results about the weakness of yo ...

  8. Scala OOP

    Scala OOP 1.介绍 Scala是对java的封装,底层仍然采用java来实现,因此Scala也是面向对象的.其中scala给出了class.object和trait三种面向对象的组件.

  9. Vim中根据正则对选中文本对齐(比如ini文件的=号对齐)

    vimrc增加如下内容即可: vnoremap <M-=> :call Duiqi('\v(^\s*\S+)\s+(.*)')<CR> "reg匹配的第2段文字对齐 ...

  10. myeclipse 10 创建webservice

    java 快捷创建webservice 收集一下,方便一下查阅 详情去看一下这个老哥,里面写得非常详细: http://hyan.iteye.com/ -- http://www.cnblogs.co ...