用python爬虫教你通过 Fiddler 进行手机抓包
Posted 不加班的程序员丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用python爬虫教你通过 Fiddler 进行手机抓包相关的知识,希望对你有一定的参考价值。
我们知道了 HTTP 的请求方式以及在 Chrome 中摸清了一些套路,但是除了对数据进行解析之外有时候我们想,对请求的数据或者响应的数据进行篡改
怎么做呢?
我们经常在用的手机,手机里面的数据,怎么对它抓包呢?
那么...
接下来就是学习 python 的正确姿势
我们要用到一款强大免费的抓包工具
Fiddler
你可以到 https://www.telerik.com/download/fiddler
去下载如果你觉得麻烦没关系,已经帮大家下载好了,直接加微信领取ssmp54996
抓包
就可以直接获取 Fiddler 啦
那么 Fiddler 是怎么玩的呢?
一般情况下
我们通过浏览器来请求服务器的时候
是点对点的,我来给大家画个图
正常情况下
浏览器给服务器发送请求
服务器响应返回数据
但是这个时候,Fiddler非要来这里插一脚
然后
就变成这样了
Chrome发送请求给服务器的时候
会被 Fiddler 拦截下来
可以在这里修改请求参数什么的
然后 Fiddler 假装自己是浏览器
再发送数据给服务器
这个时候服务器接收到 Fiddler 的请求
还是天真的以为是 Chrome 发送的,于是就返回数据了,没想到在半路杀出个程咬金,
返回的数据又被 Fiddler 拦截下来了,Fiddler 可以在这个时候
对数据进行修改,然后在返回给 Chrome,这就是 Fiddler 的主要使命
好了
知道了 Fiddler 的具体工作原理之后
咱们就能操作一番
安装完之后在电脑打开 Fiddler
一般情况下
我们按下 F12
就可以抓取我们在浏览器的请求了
如果这个时候你在浏览器发送请求
但是 Fiddler 没有一丁点反应
那么可以在你的浏览器配置一下代理
Fiddler 的默认代理 IP 为
127.0.0.1端口为
8888
就拿 Chrome 浏览器为例
打开
设置-->高级-->打开代理设置
进行设置上面的 ip 地址和端口就可以了
这时候你在浏览器访问网站
在 Fiddler 就可以抓取到你的请求了
不过...
你可能会发现很多这样的错误,Tunnel to 443,因为现在很多请求都是 HTTPS 了,
所以我们需要安装证书,才可以抓取 https 的请求,那么咋整咧?
点击菜单 Tools->Options 接着选择HTTPS 勾上Decrypt HTTPS traffic
勾完之后呢,有没看到右上角有个 Actions 按钮
轻轻按一下选择 Reset All Certificates
完事之后
回到你的浏览器输入localhost:8888可以看到一个这样子的页面
点击 FiddlerRoot_certificate 下载证书安装完之后再打开 Fiddler你会发现你可以抓取 Https 的请求了
那么
各栏之间都代表啥意思呢
左边代表的就是你的请求
Result : 请求的 HTTP(s) 状态吗
Protocol : 请求协议
HOST : 请求的主机名
URL : 请求的资源目录位置
Body : 请求大小
Caching : 请求的缓存
Content-Type : 服务器响应的实体类型
Process : 是谁(进程)发送的
Comments : 备注
Custom : 自定义
当我们点击某一条请求后
在右边的 Insepector 中就可以看到具体的请求和返回信息内容了
说到这里你会发现这个和上次讲的 Chrome 的开发工具面板差不多么稍安勿躁
接下来就说说怎么来配置手机
使用 Fiddler 来抓取我们手机上的数据在你的 Fiddler 中像以下设置
接着让你现在的这台电脑
和你的手机都连在同一个 wifi 下接着
查看你电脑的 ip 地址
在你的手机上
打开你连接的 wifi
设置 http 代理服务器和端口
这里的服务器地址就是你刚找到的 IPv4 地址
端口 8888
紧接着
手机打开浏览器输入你的 IPv4 地址和端口
下载安装证书
安装完之后呢
android手机这样一般就可以用了
iPhone的话
还要授权一下
在你手机的
设置-->通用-->关于本机-->证书信任设置-->把刚刚下载的证书打上勾
搞定
你手机的所有访问都可以用Fiddler来抓包了
我现在就在我的手机上
打开微信和网易云音乐
可以看到我电脑上的 Fiddler
抓取到了!!
既然都抓到数据了
那么接下里就来点骚操作吧
用 Fiddler 来修改一下我们的请求和返回数据
应该很好玩!
我们来玩玩 b 站吧
机打开bilibili
这时候我们可以在 Fiddler 设置过滤
我们就针对 b 站的请求
然后我们在 Fiddler 按一下
ALT+F11按完之后
所有服务器的返回都会被 Fiddler 拦截
接下来比如我要看 b 站的热门内容,那么我们点击这个 热门 的tab
可以看到,Fiddler 拦截了
我们点击这个请求,然后点击右边的 Inspectors,这时候可以看到 b 站服务器给我们返回了热门内容
也就是在这个时候,我们来篡改一下这些数据让我们改的数据显示到手机上,那就把第一个视频的标题改了吧
改成小帅b太帅了!!!
改完之后呢
我们点击 Run to Completion,也就是将我们的数据发给手机,那么这个时候,看看我们的手机吧
以上我们演示的是返回数据的拦截。那么对于请求时的拦截,快捷键是 F11,相信你也知道怎么玩了!快来加入 Pythonner 的聚集地
以上是关于用python爬虫教你通过 Fiddler 进行手机抓包的主要内容,如果未能解决你的问题,请参考以下文章
验证码不好处理吗?很难识别?那我教你绕过它好了啊!爬虫必会!