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

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

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

Fiddler:基础知识

Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的,使用的代理地址是:127.0.0.1,端口默认为8888,我们也可以通过设置进行修改。

代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;
同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。 Fiddler可以抓取支持http代理的任意程序的数据包,如果要抓取https会话,要先安装证书。

HTTP协议

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

Fiddler的安装

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

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

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

Fiddler使用

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

Fiddler软件信息栏

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

Fiddler的QuickExec的简单使用

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

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

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

Fiddler断点功能

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

遇到的问题:

1)执行fiddler文件下fiddler.exe 提示下载.net framework
2)解决Fiddler "creation of the root certificate was not successful”
1.cd "d:\Program Files\Fiddler"--进入Fiddler所在文件
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(大于当前时间)
3)配置浏览器代理:(开启fiddler时,该程序会自动配置浏览器代理,导致无法无法上网)
1.chrome -> 设置 -> 高级 -> 打开代理设置 -> 连接 -> 局域网设置 -> 代理服务器:不勾选"为LAN使用代理服务器"
地址:192.168.5.147 端口:8888
2.Fiddler软件会提示"The system proxy was changed.Click to reenable capturing",点击之后,Fiddler会设置浏览器代理
4)只能捕获HTTP,而不能捕获HTTPS的解决办法
1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone,点”设置“->“通用”->"描述文件")
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. iOS-swift-枚举和结构体

    1.枚举 使用关键字 enum 创 建枚举. 枚举默认起始值为 0,可以自定义起始值. 在枚举中可以定义方法,和类中定义的一样. 使用关键字 rawValue 访问当前枚举的值. enum Rank: ...

  2. 三、gridView增删改查

    1. 新增或修改一条数据 1.1 添加 新增或修改按钮 <div style="width: 120px; float: right; padding-top: 3px"&g ...

  3. jQueryMobile(二)

    三].按钮 <!-- 一个jQueryMobile页面 --> <div data-role='page'> <div data-role='header'>< ...

  4. 用Android studio进行 OpenCV 开发的第一个项目

    我的天! 折腾了好久终于搭建成功了第一个项目. 项目环境: Windows 7  家庭普通版  64位 Android studio 1.5.1 OpenCV-2.4.9-android-sdk 基于 ...

  5. 测试驱动开发(TDD)及测试框架Mocha.js入门学习

    组里马上要转变开发模式,由传统的开发模式(Developer开发,QA测试),转变为尝试TDD(Test-driven development,测试驱动开发)的开发模型.由此将不存在QA的角色,或者仅 ...

  6. vsftpd配置

    yum -y install vsftpd useradd upload -s /sbin/nologin passwd upload mkdir /data/upload chown -R upol ...

  7. 如何让Oracle数据库保持优良性能的方法

    OracleDatabase,又名OracleRDBMS,或简称Oracle.是甲骨文公司的一款关系数据库管理系统.它是在数据库领域一直处于领先地位的产品.可以说Oracle数据库系统是目前世界上流行 ...

  8. MySQL数据库实验六:存储过程建立与调用

    实验六  存储过程建立与调用 一.实验目的 理解存储过程的概念.建立和调用方法. 二.实验环境 三.实验示例 1.定义一个函数,按性别计算所有学生的平均年龄. CREATE FUNCTION aver ...

  9. mac 下使用 ikbcG87 及使用 karabiner 改大小写键

    前言 一直使用 mac ,对于机械键盘还处于刚入坑阶段,作为小白还是选择能够兼容 mac 的机械键盘,于是选择了 ikbcG87 "双子座" 1.使用 ikbc G87 mac 模 ...

  10. 前端高质量知识(四)-JS详细图解作用域链与闭包

    攻克闭包难题 初学JavaScript的时候,我在学习闭包上,走了很多弯路.而这次重新回过头来对基础知识进行梳理,要讲清楚闭包,也是一个非常大的挑战. 闭包有多重要?如果你是初入前端的朋友,我没有办法 ...