欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Mac下Fiddler的安装、配置与使用

程序员文章站 2024-03-18 16:52:40
...

环境安装

Mono安装

首先,Mac下需要使用.Net编译后的程序,需要用到跨平台的方案Mono(现阶段微软已推出跨平台的方案.Net Core,不过暂时只支持控制台程序)。安装程。可以从 http://www.mono-project.com/download/#download-mac  地址下载。

Mac下Fiddler的安装、配置与使用

安装完后,在Terminal里执行以下命令(注意MonoVersion的更换):

/Library/Frameworks/Mono.framework/Versions/<Mono Version>/bin/mozroots --import --sync

 执行结果如下:

Mac下Fiddler的安装、配置与使用

此步是为了从Mozilla LXR上下载所有受信任的root证书,存于Mono的证书库里。root证书能用于请求https地址。

接下来如果想要运行Fiddler,还需要把Mono加入到环境变量中。编辑.bash_profile文件:

sudo vi ~/.bash_profile

加入文本:

export MONO_HOME=/Library/Frameworks/Mono.framework/Versions/5.0.1
export PATH=$PATH:$MONO_HOME/bin

Mac下Fiddler的安装、配置与使用

保存后重新打开Terminal,Mono环境已装好。

 

Fiddler的安装

从Fiddler官网 https://www.telerik.com/download/fiddler 下载Fiddler Everywhere的压缩包,按照指引安装即可

 

Fiddler运行

Mac下Fiddler的安装、配置与使用

 

使用

1.打开HTTP。设置Trust root certificate

Mac下Fiddler的安装、配置与使用

 

2. 点击connections,然后勾选 “allow remote computers to connect”  记住这边的端口号(8888)

Mac下Fiddler的安装、配置与使用

开始抓吧

  1. 首先确保电脑和手机连在同一个WiFi下面

  2. 打开fiddle

  3. 获取电脑ip

  4. 打开cmd命令行

  5. 输入ifconfig,,找到ip地址

 

打开手机WiFi设置,找到你当前链接的WiFi

 

  1. 设置代理服务器为你电脑的ip,端口号为上面设置的端口号(默认为8888)

 

  1. 安装https证书

  2. 在手机浏览器上打开 你电脑ip:你设置的端口号

  3. 我的是192.168.31.146:8888

  4. 点击框框处安装证书

Mac下Fiddler的安装、配置与使用

 

  1. 设置fiddle监听所有请求

  2. 选择all process

 

 

 

 

 

  1. 参数如下图

Mac下Fiddler的安装、配置与使用

 

  1. 返回值因为我看到是json的格式了,所以直接以json的格式看。

Mac下Fiddler的安装、配置与使用

 

  1. 那么直接模拟发送吧

  2. 直接看代码吧。。。

  3. import requests

    如果headers里面没有referer则会访问异常

    referer表示上一个页面是什么。

    headers = {
    'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 10_3_1 like Mac OS X) AppleWebKit/603.1.30 (KHTML, like Gecko) Mobile/14E304 MicroMessenger/6.5.7 NetType/WIFI Language/zh_CN',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Referer': 'https://servicewechat.com/wx80f809371ae33eda/23/page-frame.html',
    }
    url = 'https://mwx.mobike.com/mobike-api/rent/nearbyBikesInfo.do'
    data = {
    'longitude':'121.1883',# 经度
    'latitude':'31.05147', # 纬度
    'citycode':'021',
    'errMsg':'getMapCenterLocation:ok'

    }

    下面必须加上verify=False,表示不验证ssl,要不然一直报错。。。

    z = requests.post(url,data=data,headers=headers,verify=False)

Mac下Fiddler的安装、配置与使用

可以看到我们已经抓取了需要的数据,那么怎么抓取整个上海的摩拜单车情况呢??

只要获取上海的所有经纬度,然后替换上面data中的经度及纬度就可以了。。。

那么怎么获取上海的所有经纬度。。。

我发现挺难的。。。(有人拿到了请告诉我一声,谢谢)

然后我用了高德地图api的搜索功能,搜索了上海的所有小区的经纬度。一共898个,

然后查了这898个小区附件的摩拜单车情况....

总结

看完本编文章,你应该学会“如何抓取手机app的包”

其实挺简单的(就是你手机通过电脑上网,然后这台电脑上所有的请求都被抓下来了,那么你手机的请求自然也被抓下来了)

大家还可以试着抓抓知乎客户端的包。。。

更多fiddle的使用技巧,请善用百度、Google

最后所有代码在https://github.com/kimg1234/pachong/blob/master/mobai.py

reference:

  • https://www.jianshu.com/p/5086646e9aa4