本文來源屬於網絡資源整理,是將多位大神講解的優秀知識點以及本身的實踐操做加理解再次從新整合在一起,但願對你們有所幫助。若有冒犯敬請諒解,請第一時間聯繫,郵箱:1294801384@qq.com 咱們將積極配合處理!前端
若是有問題,能夠加QQ羣:1091481018互相學習,借鑑連接以下,除此借鑑文章以外,他們還有不少的優秀文章你們也能夠簡介閱讀噢,但願對你們喜歡:
【做者:Elli_ON】https://msd.misuland.com/pd/3255818272473350882
【做者:abcnull】http://www.javashuo.com/article/p-uovusmus-nn.htmlweb
目錄chrome
1、序言 api
2、Fiddler簡介瀏覽器
3、Fiddler界面介紹緩存
(一)功能介紹:主菜單服務器
(二)功能介紹:快捷菜單cookie
(三)會話列表網絡
(四)會話列表:右鍵功能 session
(五)選項卡
(六)請求查看器
(七)響應查看器
4、Fiddler實戰-抓取手機端數據
5、總結
在編寫網絡爬蟲時,第一步(也是極爲關鍵一步)就是對網絡的請求(request)和回覆(response)進行分析,尋找其中的規律,而後才能經過網絡爬蟲進行模擬。瀏覽器大多也自帶有調試工具能夠進行抓包分析,可是瀏覽器自帶的工具比較輕量,複雜的抓包並不支持。而且有時候須要編寫手機APP爬蟲,這時候就必須須要用到其餘的專業抓包工具,例如本篇介紹的Fiddler。
Fiddler是位於客戶端和服務器端的HTTP代理,也是目前最經常使用的http抓包工具之一,它可以記錄客戶端和服務器之間的全部 HTTP請求,能夠針對特定的HTTP請求,分析請求數據、設置斷點、調試web應用、修改請求的數據,甚至能夠修改服務器返回的數據,功能很是強大,是web調試的利器。
固然,除了Fiddler以外,抓包工具還有Firebug、Wireshark、Httpwatch等,爲何咱們要選擇fiddler呢?緣由以下:
(1)Firebug雖然能夠抓包,可是對於分析http請求的詳細信息,不夠強大。模擬http請求的功能也不夠,且firebug經常是須要「無刷新修改」,若是刷新了頁面,全部的修改都不會保存。
(2)Wireshark是通用的抓包工具,可是比較龐大,對於只須要抓取http請求的應用來講,彷佛有些大材小用,總有一點殺雞用牛刀的感受。
(3)Httpwatch也是比較經常使用的http抓包工具,可是隻支持IE和firefox瀏覽器(其餘瀏覽器可能會有相應的插件),對於想要調試chrome瀏覽器的http請求,彷佛稍顯無力,而Fiddler 是一個使用本地 127.0.0.1:8888 的 HTTP 代理,任何可以設置 HTTP 代理爲 127.0.0.1:8888 的瀏覽器和應用程序均可以使用 Fiddler。
|
File文件:
File--->Capture Traffic啓用或中止捕獲; File--->New Viewer 新窗口; File--->Load Archive 存檔; File--->Recent Archive 最近文檔; File--->Save保存; Save--->All Session... 所有會話; Save--->Selected Session 選擇了的會話; Save--->Request 請求; Save--->Response 響應; File--->Import Sessions導入會話; File--->Export Sessions導出會話; File--->Exit退出; |
|
Edit編輯: Edit--->Copy拷貝; Copy--->Session拷貝整個Session; Copy--->Just Url將選中session的url拷貝到剪貼板; Copy--->Headers Only拷貝頭信息,包括請求和返回的頭信息; Copy--->Full Summary將session列表顯示的信息及表頭複製到剪貼板,經過tab分割。便於在Excel或其餘編輯器中查看編輯; Edit--->Remove移除; Remove--->Selected Sessions選擇會話; Remove--->Unselected Sessions反選會話; Remove--->All Sessions所有會話; Edit--->Select All選擇所有; Edit--->Undelete恢復以前刪除的會話; Edit--->Paste as Sessions做爲會話粘貼文件; Edit--->Mark標記所選的會話; Mark--->Strikeout失敗; Mark--->Red紅色; Mark--->Blue藍色; Mark--->Gold金色; Mark--->Green綠色; Mark--->Orange橙色; Mark--->Purple紫色; Mark--->Unmark未標記; Edit--->Unlock for Editing調爲可編輯 Edit--->Find Sessions查找會話 |
|
Rules規則: Rules--->Hide Image Requests隱藏圖片請求; Rules--->Hide HTTPS CONNECTs隱藏HTTPS鏈接; Rules--->Automatic Breakpoints斷點控制; Automatic Breakpoints--->Before Requests請求以前; Automatic Breakpoints--->After Responses 響應以後; Automatic Breakpoints--->Disabled禁用; Automatic Breakpoints--->Ignore Images忽略圖片; Rules--->Customize Rules打開Fiddler ScriptEditor; Rules--->Require Proxy Authentication密碼代理驗證; Rules--->Apply GZIP Encoding採用GZIP編碼; Rules--->Remove All Encodings刪除所有編碼; Rules--->Hide 304s隱藏304會話; Rules--->Request Japanese Content要求日語內容; Rules--->User-Agents支持把User-Agents請求頭設置或替換成指定值; Rules--->Performance提供影響web性能的簡單選項; Performance--->Simulate Modem speeds模擬調制解調器速度; Performance--->Disable Caching禁止緩存 Performance--->Cache Always Fresh新的緩存 |
|
Tools工具:
Tools--->Options選項; Tools--->WinINET Options WinINET選項; Tools--->Clear WinINET Cache-清除WinINET緩存; Tools--->Clear WinINET Cookies清除WinINET的Cookies; Tools--->TextWizard文字編碼解碼; Tools--->Compare Sessions比較會話; Tools--->New Session Clipboard新會話寫字板; Tools--->HOSTS hosts配置; Tools--->Reset Script重置腳本; Tools--->Sandbox沙箱; Tools--->View IE Cache查看IE緩存; |
|
View視圖: View--->Show Toolbar顯示工具條 View--->Default Layout默認佈局 View--->Stacked Layout堆疊佈局 View--->Wide Layout所有佈局 View--->Tabs製表符 Tabs--->preferences偏好 Tabs--->autosave自動保存 Tabs--->apitest API測試 View--->Statistics統計 View--->Inspectors嗅探 View--->Composer構造 View--->Minimize to Tray關閉自托盤 View--->Stay on Top前端顯示 View--->Squish Session List會話列表格式 View--->AutoScroll Session List自動滾動會話鏈表 View--->Refresh刷新 |
|
Help幫助: Help--->Help幫助 Help--->Fiddler Book說明 Help--->Discussions社區討論 Help--->HTTP References HTTP的參考 Help--->Troubleshoot Filters-故障排除 Help--->Check For Updates檢測更新 Help--->Send Feedback發送反饋 Help--->Abou關於 |
|
會話列表進行備註
Replay--->從新發送選中請求 Remove--->刪除會話 Go--->打斷點時使用 Stream--->點擊爲流模式,不點擊爲緩衝模式 【緩衝模式】:內容所有返回在發送到客戶端;能夠控制響應,修改響應數據,可是時序圖有時候會出現異常; 【流模式】:收到內容當即發送給客戶端;更接近真實瀏覽器的性能,速度快,時序圖更準確(好比瀑布圖),可是不能控制響應;
若是不須要AutoResponse和Fileters功能的話,通常使用緩衝模式; Decode--->解碼,默認勾選 |
|
Keep:All sessions--->保持所有會話 Any Process--->任何進程,精準定位 Find--->查找 Save--->保存 |
|
截屏 秒錶 Browse--->打開瀏覽器 Clear Cache--->清除緩存 TextWizard--->編碼解碼小工具 |
|
Tearoff--->打開一個新窗口 MSDN Search--->MSDN關鍵字查找 |
|
#--->圖標及序號 Result--->HTTP響應狀態碼 Protocol--->請求使用的協議 Host--->接受請求的服務器主機名和端口號 URL--->請求的服務器路徑的文件名,也包括GET參數 Body--->請求的大小,以byte爲單位 Caching--->請求的緩存過時時間或緩存控制header等值;響應頭中Expires和Cache-Control字段的值 |
|
Content-Type--->請求響應的類型 Process--->發出此請求的Windows進程及進程ID; Comment--->註釋信息; Custom--->用戶能夠經過腳本設置自定義值;FiddlerScript所設置的ui-CustomColumn標誌位的值 |
|
|
|
【Decode Selected Session】s--->解碼選擇的session,一些Response body 會Encode。Decode後一般能解決亂碼的問題; 【AtuoScroll Session List】--->自動滾動 Session List。當不斷有新的session進入list時候,關閉此功能,更容易定位選擇某一個或多個session; 【Comment】--->爲一個或多個session添加註釋;
【Compare】--->對比:選中兩條session右鍵,就會出現Compare選項。這個功能是經過第三方的軟件來實現,能夠下載WinDiff.Exe放在Fiddler的安裝目錄下,或是下載WinMerge安裝,安裝時,注意將軟件添加到系統環境變量中; 【COMETPeek】--->命令會保留正在執行的響應的「快照」,在響應完成前就能夠查看部份內容。當web應用採用COMET模式以流式向客戶端返回數據時,可使用該命令。因爲「流式」的含義就是永不結束,直有當服務端中止鏈接後,Fiddler纔會返回響應; 【Abort Session】--->終止當前正在執行的請求; 【Clone Response】--->當Session列表中選中兩個Session,而且其中一個Session在斷點處停止,而另外一個Session已經運行完成時纔可用。該命令會把已經完成的Session的響應拷貝給暫停運行的Session; 【Unlock For Editing】--->使Session的請求和響應均可以在Inspector中編輯; 【Inspect in New Windowns】--->打開一個新的Session Inspector窗口; 【Properties】--->打開Session屬性窗口,顯示當前的Session信息; |
|
Copy拷貝; 【Copy】--->Just Url將選中session的url拷貝到剪貼板; 【Copy】--->This Column拷貝摘要,其中包括:請求方法,URL,響應狀態碼及狀態信息。若是是重定向的HTTP/3xx,還會有該請求Response header中Location字段; 【Copy】--->Terse Summary簡要; 【Copy】--->Headers Only拷貝頭信息,包括請求和返回的頭信息; 【Copy】--->Session拷貝整個Session; 【Copy】--->Response DataURL拷貝響應的DataURI(一個特定資源的協議),格式規範: data:[<mimetype>][;charset=<charset>][;base64],<encoded data>,這項技術通常用於圖片內嵌頁面; 【Copy】--->Full Summary將session列表顯示的信息及表頭複製到剪貼板,經過tab分割。便於在Excel或其餘編輯器中查看編輯; |
|
Save保存:
【Save】--->Selected Sessions選擇Sessions; 【Save】--->Selected Sessions---> in ArchiveZIP將選擇的sessions保存爲SAZ格式壓縮文件; 【Save】--->Selected Sessions--->as Text將所選Session保存爲txt格式文件; 【Save】--->Selected Sessions---> as Text(Headers only)將所選sessions的請求和響應頭一塊兒保存爲txt格式文件; |
|
Remove刪除: 【Remove】--->Selected Sessions刪除選中的sessions 【Remove】--->Unselected Sessions刪除未選中的sessions; 【Remove】--->All Session刪除全部sessions |
|
Filter Now快捷過濾: 選中一個session右鍵會出現Filter Now選項,Fiddler會根據你選擇的session快速生成隱藏/顯示條件;
當咱們選則隱藏某一個條件後,session list會隱藏符合條件的session; |
|
Mark標記所選的會話: Mark--->Strikeout失敗; Mark--->Red紅色; Mark--->Blue藍色; Mark--->Gold金色; Mark--->Green綠色; Mark--->Orange橙色; Mark--->Purple紫色; Mark--->Unmark未標記; |
|
Replay從新請求此地址: 【Replay】--->Reissue Requests 將選中的請求以原來的形式從新發送。若是按住Shift鍵,能夠鍵入重複次數。或是選中sessions後按Shift+R; 【Replay】--->Reissue Unconditionally無條件的發送選中請求,告訴服務器不要返回HTTP/304響應,快捷鍵Shift+U; 【Replay】--->Reissue and Edit把選中的請求以原來的形式從新發送,在每一個session中設置請求斷點,在請求被髮送到服務器前,使用Fiddler的Inspector修改請求; 【Replay】--->Reissue and Verify把選中的請求以原來的形式從新發送,驗證Response狀態碼和Response body; 從新發送的請求會被標記出背景色,綠色表明驗證經過,紅色表示驗證失敗,在comments中會提示失敗緣由和對比的session id; 【Replay】--->Reissue Sequentially將選中的請求從新發送,等待前一個響應回來後,在發送下一個; 【Replay】--->Reissue from Composer將選中的請求克隆到Fiddler右側的Composer模塊中(Composer後續博客講解); 【Replay】--->Revisit in IE將sessions的url在IE中打開。注意IE老是使用GET方法,並且用本身的header和cookie,無論session中提供了什麼HTTP方法和請求頭; |
|
Select選擇: 【Select】--->Parent Request當前請求是從那個頁面來的,至關於當前請求頭中的Refere字段值。鼠標放在session上按P鍵可執行; 【Select】--->Child Requests與1相反; 【Select】--->Duplicate Requests選中Session列表中和當前的Session的URL和HTTP方法相同的全部Session; 【Select】--->Matching Values值匹配選擇,能夠根據Session列表中的任意值匹配,鼠標聽任意一列,點擊Alt+左鍵,就會匹配出相同值的session; |
|
【Statidtics】--->對選中多個Sessions統計; 【Inspectors】--->請求頭和響應體 【AutoResponder】--->從新定向 【Composer】--->模擬進行發送 【FiddlerScript】--->腳本 【Log】--->日誌 【Fiters】--->過濾 【No Host Filter】不設置域名過濾; 【Hide the following Hosts】設置的這些域名相關會話將在左側會話列表中被隱藏; 【Show only the following Hosts】只在會話列表中顯示與設置的這些域名相關的會話; 【Flag the following Hosts】與設置的域名相關會話將在左側會話列表中高亮想顯示。 【Timeline】--->瀑布流時間圖 |
|
【Headers】--->請求頭信息顯示爲一個分級視圖,包含了web客戶端信息、Cookie、傳輸狀態等; 【TextView】--->顯示POST請求的body部分爲文本; 【SyntaxView】--->顯示腳本(安裝SyntaxView插件) 【WebForms】--->以直觀的界面顯示QueryString的值和Body的值,這裏的Body應該是 application/x-www-form-urlen-coded格式; 【HexView--->請求內容的16進制顯示; 【Auth】--->顯示hearer中Proxy-Authorization和【Authoriization】信息; 【Cookies】--->以直觀的界面顯示Header中Cookie的值; 【Raw】--->將整個請求顯示爲純文本; 【JSON】--->經過JOSN格式顯示; 【XML】--->若是請求的body是XML格式,就是用分級的XML樹來顯示它; |
|
【Transformer】--->響應信息的壓縮編碼格式; 【Headers】--->用分級視圖顯示響應的header; 【TextView】--->使用文本顯示相應的body; 【SyntaxView】--->顯示腳本(安裝SyntaxView插件) 【ImageView】--->響應內容若是是圖片則顯示圖片,左側灰色區域會顯示圖片的大小、寬高、文件格式等信息,在下方還能夠選擇縮放模式:自動縮放、縮放以適應顯示區域大小、無縮放; 【HexView】--->響應內容的16進制顯示; 【WebView】--->; 【Auth】--->顯示hearer中Proxy-Authorization和Authoriization信息; 【Caching】--->緩存; 【Cookies】--->以直觀的界面顯示Header中Cookie的值; 【Raw】--->將整個響應顯示爲純文本; 【JSON】--->經過JOSN格式顯示; 【XML】--->若是響應的body是XML格式,就是用分級的XML樹來顯示它; |
因爲整理的時候使用word文檔去整理,內容太多,反而查閱比較麻煩,索性這裏將實戰部分當一個大塊兒去詳細的講解。這裏請閱讀「《Fiddler系列二:Fiddler實戰抓取手機端數據》」
Fiddler是一個功能強大的網絡抓包工具,本文對如何用Fiddler抓取HTTP、HTTPS、手機APP會話數據報介紹了,另外還補充介紹了數據包過濾的功能。固然,Fiddler的功能遠不止這些,不過本文介紹的操做用於通常的網絡爬蟲數據包分析足以。
對於小白初次瞭解的話,請打開Fiddler工具和文檔同步操做,這也學習起來效果最佳,可能在閱讀「Fiddler界面介紹」的時候內容比較枯燥,可是學習和成長的道路上不就是這樣的一個過程嘛!加油讀者們,但願對大家有所幫助!
最後若是在線的讀者你喜歡的話能夠留下一個小小的「筆芯」,同時在本文中有什麼問題,或者有錯誤的地方,也能夠添加如下QQ羣進行學習交流。同時在文章發佈以前,大家在網頁上所看到的文章我已經編寫好了離線文檔,若是有須要,一樣也能夠加羣下載。
學習和成長本就是這樣,痛並快樂着,而又是一個漫長的過程,由於有大家的分享和你們的互相監督學習,纔可以不斷的進步和成長。
若是喜歡,能夠繼續深刻閱讀:《Fiddler系列二:Fiddler實戰抓取手機端數據》