Fiddler 是一個使用 C# 編寫的 http 抓包工具。它使用靈活,功能強大,支持衆多的 http 調試任務,是 web、移動應用的開發調試利器。javascript
我很早以前的一篇文章 Fiddler抓取數據,20行代碼賺500塊,湊巧幫那位朋友解決了他的需求。隔了這麼久又有人找我抓公衆號數據。今天就分享一下我是如何使用 Fiddler 工具的。java
Fiddler下載地址 :www.telerik.com/fiddler 訪問連接,進入網站首頁,以下圖 web
點擊下載,而後會跳到一個問卷頁面,填寫信息能夠下載了。雙擊下載好的安裝程序,點擊「下一步」就可安裝。windows
查看請求 打開 Fiddler
工具,顯示效果以下圖: 瀏覽器
兩個設置服務器
打開 fiddler
,點擊工具菜單Tools->optins..->HTTPS
頁籤,修改以下內容: 這裏主要勾選
Decrypt HTTPS traffic
這個選項,並選擇 ...from all processes
便可。並點擊右側的 Actions
,導出證書到桌面。 markdown
打開瀏覽器 Internet 選項->鏈接->局域網設置
,彈出以下頁面,這裏主要添加一下本地代理的IP地址和端口。 注:windows 好像不須要這一步設置。網絡
過濾請求 選中 Fiddler
中一條記錄,右鍵 Filter Now
,而後選擇 Hide 'xxx'
便可進行過濾。 ide
以下圖右鍵過濾的請求,就能夠自動取消過濾。 工具
fiddler 配置 打開 fiddler
,點擊工具菜單Tools->optins..->Connections
頁籤,勾選 Allow remote computers to conect
便可,意思是容許接收來自遠程客戶端的鏈接。
手機配置
查看服務IP地址 在cmd
窗口輸入 ipconfig /all
查看網絡信息,獲取當前電腦的IP地址,以下圖:
安裝證書 在手機瀏覽器訪問 192.168.1.105:8888,手機上下載 Fiddler
證書,以下圖:
設置->通用->描述文件
中,選中證書,添加信任便可。 wifi
配置代理 打開手機 wifi
設置,進入配置代理,這裏主要添加 服務器
、端口
這兩個信息,點擊保存便可。以下圖 注意:
Fiddler
工具的那臺電腦的IP地址。Fiddler
工具,Tools->optins..->Connections
頁籤中可看到,默認值爲8888
。數據抓取 在手機上作任何操做,電腦端的 Fiddler
都顯示對應操做的請求,以下圖:
上面哪些配置都是基礎,接下來纔是重頭戲。Fiddler
的強大之處在於,它能夠修改請求參數,響應數據,根據須要自定義規則。OnBeforeRequest
和 OnBeforeResponse
最經常使用的兩個方法。點擊Fiddler
菜單 Rules->Customize Rules...
就能夠打開腳本工具了,這裏的腳本支持經常使用的 js
語法。
OnBeforeRequest
意思是在請求以前能夠作的事情。這裏實現的功能是將網站請求頭信息寫入本地文件。代碼以下:
if (oSession.uriContains("mobile/wx/product/")) { var fso; var file; fileName = fileName + "_" + ucp; fileName = fileName.replace(/\*/g,""); var filePath="C:\\mntListen\\" + fileName + ".txt"; fso = new ActiveXObject("Scripting.FileSystemObject"); file = fso.OpenTextFile(filePath,2 ,true, false); file.writeLine(" " + oSession.oRequest.headers); file.close(); } 複製代碼
注:磁盤對應位置若是沒有文件路徑,須要提交手動建立。
OnBeforeResponse
意思是在報文響應前能夠作的事情。這裏個人需求是對網站過濾,修改它的響應報文。
if (oSession.uriContains("mobile/wx/detail/v2")) { var body = oSession.GetResponseBodyAsString(); body = body.replace(/INVALID/g,"VALID"); body = body.replace(/title/g,"title1"); body = body.replace(/name/g,"title"); oSession.utilSetResponseBody(body); file.close(); } 複製代碼
上面的這段代碼的意思是,當響應 url 連接包含 mobile/wx/detail/v2
,進行內容替換。
查看 Fiddler 手冊 打開 Fiddler
工具,右側有經常使用對象的使用方法,可快速查閱。
花了差很少兩天時間,終於幫那位朋友解決了他的問題,仍是挺有成就感的!中間也有想放棄的時候,最終和朋友的屢次溝通,完全理解需求後,才大功告成。最後我得出一個結論:在作項目開發時,首先須要理解客戶需求,才能針對需求尋找解決方案。若是你也在使用 Fiddler
工具的遇到問題,咱們一塊兒討論哈!