Mac下Fiddler的安裝、配置與使用

環境安裝

Mono安裝

首先,Mac下需要使用.Net編譯後的程序,需要用到跨平臺的方案Mono(現階段微軟已推出跨平臺的方案.Net Core,不過暫時只支持控制檯程序)。安裝程。可以從 http://www.mono-project.com/download/#download-mac  地址下載。

安裝完後,在Terminal裏執行以下命令(注意MonoVersion的更換):

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

 執行結果如下:

此步是爲了從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

保存後重新打開Terminal,Mono環境已裝好。

 

Fiddler的安裝

從Fiddler官網 https://www.telerik.com/download/fiddler 下載Fiddler Everywhere的壓縮包,按照指引安裝即可

 

Fiddler運行

 

使用

1.打開HTTP。設置Trust root certificate

 

2. 點擊connections,然後勾選 “allow remote computers to connect”  記住這邊的端口號(8888)

開始抓吧

  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. 點擊框框處安裝證書

 

  1. 設置fiddle監聽所有請求

  2. 選擇all process

 

 

 

 

 

  1. 參數如下圖

 

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

 

  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)

可以看到我們已經抓取了需要的數據,那麼怎麼抓取整個上海的摩拜單車情況呢??

只要獲取上海的所有經緯度,然後替換上面data中的經度及緯度就可以了。。。

那麼怎麼獲取上海的所有經緯度。。。

我發現挺難的。。。(有人拿到了請告訴我一聲,謝謝)

然後我用了高德地圖api的搜索功能,搜索了上海的所有小區的經緯度。一共898個,

然後查了這898個小區附件的摩拜單車情況....

總結

看完本編文章,你應該學會“如何抓取手機app的包”

其實挺簡單的(就是你手機通過電腦上網,然後這臺電腦上所有的請求都被抓下來了,那麼你手機的請求自然也被抓下來了)

大家還可以試着抓抓知乎客戶端的包。。。

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

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

reference:

  • https://www.jianshu.com/p/5086646e9aa4
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章