python爬虫入门02:教你通过 Fiddler 进行手机抓包


哟~哟~哟~


hi起来


everybody



python


今天要说说怎么在我们的手机抓包


通过


python爬虫入门01:教你在Chrome浏览器轻松抓包



我们知道了 HTTP 的请求方式


以及在 Chrome 中摸清了一些套路


但是


除了对数据进行解析之外


有时候我们想


对请求的数据或者响应的数据进行篡改


怎么做呢?


我们经常在用的手机


手机里面的数据


怎么对它抓包呢?


那么…


接下来就是学习 python 的正确姿势


python


我们要用到一款强大免费的抓包工具


Fiddler

你可以到


https://www.telerik.com/download/fiddler


去下载


如果你觉得麻烦


没关系


小帅b已经帮大家下载好了


直接在公众号发送


抓包


就可以直接获取 Fiddler 


那么 Fiddler 是怎么玩的呢?


一般情况下


我们通过浏览器来请求服务器的时候


是点对点的


我来给大家画个图


python

正常情况下


浏览器给服务器发送请求


服务器响应返回数据


但是这个时候


Fiddler非要来这里插一脚


python



然后


就变成这样了


python


Chrome发送请求给服务器的时候


会被 Fiddler 拦截下来


可以在这里修改请求参数什么的


然后 Fiddler 假装自己是浏览器


再发送数据给服务器


python


这个时候服务器接收到 Fiddler 的请求


还是天真的以为是 Chrome 发送的


于是就返回数据了


没想到在半路杀出个程咬金


返回的数据又被 Fiddler 拦截下来了


python


Fiddler 可以在这个时候


对数据进行修改


然后在返回给 Chrome


这就是 Fiddler 的主要使命


python



好了


知道了 Fiddler 的具体工作原理之后


咱们就能操作一番


安装完之后在电脑打开 Fiddler


一般情况下


我们按下 F12


就可以抓取我们在浏览器的请求了


python



如果这个时候你在浏览器发送请求


但是 Fiddler 没有一丁点反应


那么可以在你的浏览器配置一下代理


Fiddler 的默认代理 IP 为


127.0.0.1


端口为


8888


就拿 Chrome 浏览器为例


打开


设置–>高级–>打开代理设置


进行设置上面的 ip 地址和端口就可以了


这时候你在浏览器访问网站


在 Fiddler 就可以抓取到你的请求了


python


不过…


先别高兴太早


你可能会发现很多这样的错误


Tunnel to 443



因为现在很多请求都是 HTTPS


所以我们需要安装证书


才可以抓取 https 的请求


那么咋整咧?



点击菜单 


Tools->Options 


接着选择


 HTTPS 


勾上


Decrypt HTTPS traffic


python



勾完之后呢


有没看到右上角有个 Actions 按钮


轻轻按一下


选择


 Reset All Certificates


完事之后


回到你的浏览器输入


localhost:8888


可以看到一个这样子的页面


python

点击 FiddlerRoot_certificate 下载证书


安装完之后再打开 Fiddler


你会发现你可以抓取 Https 的请求了


python


那么


各栏之间都代表啥意思呢


左边代表的就是你的请求


Result : 请求的 HTTP(s) 状态吗
Protocol : 请求协议
HOST : 请求的主机名
URL : 请求的资源目录位置
Body : 请求大小
Caching : 请求的缓存
Content-Type : 服务器响应的实体类型
Process : 是谁(进程)发送的
Comments : 备注
Custom : 自定义



当我们点击某一条请求后


在右边的 Insepector 中就可以看到具体的请求和返回信息内容了


python


说到这里


你会发现


这他妈的不就和上次讲的 Chrome 的开发工具面板差不多么


稍安勿躁


接下来就说说怎么来配置手机


使用 Fiddler 来抓取我们手机上的数据


在你的 Fiddler 中


像以下设置


python


接着 


让你现在的这台电脑


和你的手机都连在同一个 wifi 下


接着


查看你电脑的 ip 地址


python


在你的手机上


打开你连接的 wifi


设置 http 代理服务器和端口


这里的服务器地址就是你刚找到的 IPv4 地址


端口 8888


python



紧接着


手机打开浏览器输入你的 IPv4 地址和端口


下载安装证书


python



安装完之后呢


Android手机这样一般就可以用了


iPhone的话


还要授权一下


在你手机的


 设置–>通用–>关于本机–>证书信任设置–>把刚刚下载的证书打上勾


python



ok


搞定


你手机的所有访问都可以用Fiddler来抓包了


我现在就在我的手机上


打开微信和网易云音乐


可以看到我电脑上的 Fiddler


抓取到了!!


python


python


既然都抓到数据了


那么接下里就来点骚操作吧


使用 Fiddler 来修改一下我们的请求和返回数据


应该很好玩!


我们来玩玩 b 站吧


手机打开bilibili


python



这时候我们可以在 Fiddler 设置过滤


我们就针对 b 站的请求


python


然后我们在 Fiddler 按一下


ALT+F11


按完之后呢


所有服务器的返回都会被 Fiddler 拦截


ok


接下来


比如我要看 b 站的热门内容


那么我们点击这个 热门 的tab


python



可以看到


Fiddler 拦截了


python


我们点击这个请求


然后点击右边的 Inspectors


这时候可以看到 b 站服务器给我们返回了热门内容


python

python

也就是在这个时候


我们来篡改一下这些数据


让我们改的数据显示到手机上


那就把第一个视频的标题改了吧


改成


小帅b太帅了!!


python


python


改完之后呢


python


我们点击 Run to Completion


也就是将我们的数据发给手机


那么这个时候


看看我们的手机吧


python



oh


不好意思


小帅b成为b站热门第一了!


哈哈哈



ok


以上我们演示的是返回数据的拦截


那么对于请求时的拦截


快捷键是 F11


相信你也知道怎么玩了!


(完)



python


快来加入 Pythonner 的聚集地


python






python

                          


原文始发于微信公众号(学习python的正确姿势):python

One Reply to “python爬虫入门02:教你通过 Fiddler 进行手机抓包”

  1. giluo说道:

    我尝试了很多次 我能获取响应 也可以拦截 但是拦截没有数据 而且我改了代理和端口之后 我用手机打开app没有网 我不知道应该怎么去解决 如果大佬看到我的评论并且愿意回复我 鄙人不胜感激

发表回复