不会抓包,谈何爬虫
http原理
所谓的http代理,其实就是代理客户机的http访问,主要代理浏览器访问页面。
代理服务器是介于浏览器和web服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回网页而是向代理服务器发出请求,Request信号会先送到代理服务器,由代理服务器来取回浏览器所需要的信息并传送给你的浏览器。
fiddler的使用
抓包工具抓取HTTPS的包的时候跟HTTP的直接转发是不同的。所以我们需要配置HTTPS的证书。
打开后选择HTTPS,勾选上这个选项,然后勾选上下方出现的两个选项。最后再将弹出的窗口都选择yes
设置
- Capture HTTPS CONNECTs 捕捉HTTPS连接
- Decrypt HTTPS traffic 解密HTTPS通信
- Ignore server certificate errors 忽略服务器证书错误
- all processes 所有进程
- browsers onlye 仅浏览器
- nono- browsers only 仅非浏览器
- remote clients only 仅远程链接
-
Trust Root Certificate(受信任的根证书) 配置Windows信任这个根证书解决安全警告
-
Allow remote computers to connect 允许远程连接
-
Act as system proxy on startup 作为系统启动代理
-
resuse client connections 重用客户端链接
操作界面
- 界面含义
1 给session添加一个注释
2 Replay:将目标session再发送一次
3 删除session
4 将断点的session恢复执行
5 Decode:将传输的数据解码成容易阅读的格式
6 Find:查找session
7 Save:将session保存成本地文件
8 Clear Cache:清除缓存
Session窗口
-
Session的序号
-
Result:请求的响应状态码
-
Protocol:请求的协议类型
-
Host:域名
-
URL:请求的url
-
Body:响应体的大小
-
Caching:缓存方式
-
Content-Type:响应的数据类型
-
Process:发起请求的进程
-
Comments:注释
-
同时,每一个session都有不同的颜色,不同的颜色代表不一样的session类型。
Inspectors标签页
Filters选项
Find查找
命令行查找
在Fiddler中同样也是可以使用命令行来进行搜索的,在图中的黑框中输入命令即可。
请求 (Request) 部分详解
名称 | 含义 |
---|---|
Headers | 显示客户端发送到服务器的 HTTP 请求的,header 显示为一个分级视图,包含了 Web 客户端信息、Cookie、传输状态等 |
Textview | 显示 POST 请求的 body 部分为文本 |
WebForms | 显示请求的 GET 参数 和 POST body 内容 |
HexView | 用十六进制数据显示请求 |
Auth | 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息 |
Raw | 将整个请求显示为纯文本 |
JSON | 显示JSON格式文件 |
XML | 如果请求的 body 是 XML格式,就是用分级的 XML 树来显示它 |
响应 (Response) 部分详解
名称 | 含义 |
---|---|
Transformer | 显示响应的编码信息 |
Headers | 用分级视图显示响应的 header |
TextView | 使用文本显示相应的 body |
ImageVies | 如果请求是图片资源,显示响应的图片 |
HexView | 用十六进制数据显示响应 |
WebView | 响应在 Web 浏览器中的预览效果 |
Auth | 显示响应 header 中的 Proxy-Authorization(代理身份验证) 和 Authorization(授权) 信息 |
Caching | 显示此请求的缓存信息 |
Privacy | 显示此请求的私密 (P3P) 信息 |
Raw | 将整个响应显示为纯文本 |
JSON | 显示JSON格式文件 |
XML | 如果响应的 body 是 XML 格式,就是用分级的 XML 树来显示它 |
断点
设置断点是Fiddler最强大的功能之一,在设置好断点后,Fiddler会捕捉所有经过的消息,我们可以任意修改HTTP请求信息,包括Host、Cookies或表单的数据。可以设置断点修改request,也可以设置断点修改response。
断点方式有两种,一种是通过菜单栏设置全局的断点,一种是通过命令行设置指定的断点
全局断点
在菜单栏中选择Rules > Automatic Breakpoints,即可选择断点方式。有两个选择,分别是在请求往服务器发送的时候暂停,和在响应返回到客户端的时候暂停。
指定断点
指定断点需要输入指定的命令来进行断点:
bpu:在指定网页发起请求后暂停。如:bpu www.baidu.com
bpafter:在指定网页返回响应时暂停。
bpm:中断指定请求方式的请求。如:bpm get
bps:中断指定状态码的session。如:bps 200
app抓包
1、安装fiddler,并且进行配置:
Tools >> options >> connections >> 勾选 allow remote computers to connect
2、查看本机ip地址:
在cmd窗口中,输入 ipconfig ,查看 以太网 ,可以看到
IPv4 地址……………:192.168.0.104
这个192.168..**(192.168.0.104) 就是你的本机IP
3、确保手机连接了wifi,并且和电脑是在同一个局域网,
在手机中,打开浏览器,访问
http://192.168.0.104:8888
IP:是第二步查看到的ip地址,替换成你自己的IP
port:8888是你在fiddler中配置的
注意:有些浏览器会显示打不开,更换其他浏览器就可以了
4、访问成功的话,会显示:
Fiddler Echo Service
......
......
This page returned a HTTP/200 response
.To configure fiddler as a reverse proxy instead of seeing this
page, see Reverse Proxy Setup
.You can download the FiddlerRoot certificate
5、点击 FiddlerRoot certificate
, 下载 证书
6、安装 证书(不同的手机不同的方式)
- 部分手机可以直接点击 安装
- 部分手机需要 设置 >> wifi(或WLAN) >> 高级设置 >> 安装证书 >>
选中刚刚下载的 证书文件 FiddlerRoot.cer >> 确定 - 设置(Settings) >> 更多设置 >> 系统安全 >> 从存储设备安装
- 为证书命名 , 输入自己喜欢的名字,譬如 fiddler ,确定 , 显示 证书安装完成
- 安装完成后,在 设置(Settings) >> 更多设置 >> 系统安全 >> 信任的凭证 >> 系统和用户2个tab页 >> 用户 >> 可以查看到
DO_NOT_RUST_FiddlerRoot
PS: 不安装证书,抓取http的数据是没问题的,但是抓取不了https的数据
7、手机设置代理(不同的手机不一样)
手机设置 >> wifi(或WLAN) >> 选中连接的网络 >> 代理 >> 手动
主机名:192.168.0.104
这个是刚刚在 cmd 中查看到的电脑的 IP
端口 :8888
不使用网址:这个不用理会
修改完成后,确认
8、打开 fiddler 的抓包,然后在手机端运行要抓包的app,会查看到fiddler中已经可以抓到app的数据了
注意:
1、大部分app都可以直接抓包
2、少部分app没办法直接获取,需要 wireshark、反编译、脱壳 等方式去查找加密算法
3、app抓包一般都是抓取到服务器返回的json数据包
■ Over ■
最后,祝有所学习,有所成长
不使用网址:这个不用理会
修改完成后,确认
8、打开 fiddler 的抓包,然后在手机端运行要抓包的app,会查看到fiddler中已经可以抓到app的数据了
注意:
1、大部分app都可以直接抓包
2、少部分app没办法直接获取,需要 wireshark、反编译、脱壳 等方式去查找加密算法
3、app抓包一般都是抓取到服务器返回的json数据包
■ Over ■
最后,祝有所学习,有所成长