學會如何抓包,是爬蟲的必備技能,甚至可以說,不會抓包就等同於不會爬蟲。
那我們怎樣抓包呢?如果直接抓取瀏覽器上的內容,可以直接使用開發者工具進行抓包,但有個侷限,只能抓瀏覽器的,功能也沒有多少。還可以使用別的工具,比如 mitmproxy、charles,當然還有今天所說的 Fiddler 。今天要分享的就是如何使用fiddler進行抓包以及它的功能講解。
1. 下載並安裝fiddler
下載地址:www.telerik.com/download/fi…
這裡填寫下你的下載目的和國家就可以下載了,安裝的話這裡就不多說了。
2. Fiddler工作原理以及優缺點
圖片來自https://blog.csdn.net/DreamTL/article/details/70405368
如上圖,Fiddler 作為一個代理,先是捕捉到客戶端的 request 請求,然後再自己轉發到伺服器端,伺服器接收到請求時,會返回一個響應 response ,Fiddler 還是會繼續捕捉到伺服器的響應請求,再來轉發給客戶端,簡單來說, Fiddler 就是作為一箇中間人。
優缺點:
只支援 http、https、ftp、webscoket 資料流等相關協議的捕捉,無法監測或修改其他資料流,如 SMTP、POP3 協議(郵箱相關的協議),無法處理請求和響應超過 2GB 的資料,還有就是隻支援 windows 平臺,如果想要支援 mac 的話,建議下載 charles ,不過很吃效能,在我機子上執行下那風扇就想起來了。
3. Fiddler 功能詳解
3.1 如何進行抓包
1)先勾選允許抓取 https 流量
這個就是允許抓取 https 的流量。如果第一次使用,勾選之後會提示你安裝一個證照,這個證照就是用來做中間人進行抓包的, Fiddler使用此證照來解密所捕捉到的包,再加密轉發到相對應的伺服器端或者客戶端。
如果你還沒有安裝就點選 Yes 安裝即可,如果沒有彈出此視窗的也可以點選右上角的 actio 按鈕的第一個選項也是可以彈出此個視窗的
上面圈出來的是表示抓取哪一部分的流量。
-
from all processes:抓取所有程式的流量
-
from browsers only:只抓取瀏覽器的流量
-
from non-browsers only:不抓取瀏覽器的流量
-
from remote clients only:抓取遠端的客戶端,當需要抓取的是手機端的流量,就需要用到這個
2)接下來設定埠號
一般預設即可,這裡我設定成了8889。
下面的那個 Allow remote computers to connect 是允許遠端的客戶端進行連線,如果抓取手機端的也需要勾選。
3)瀏覽器設定代理伺服器
Fiddler 的設定完了,這時候還需要在你的瀏覽器上設定代理伺服器才能進行抓取。
使用 Chrome 瀏覽器的可以直接使用 SwitchyOmega 外掛進行修改即可,操作簡單。
點選新增情景模式
選擇代理伺服器,隨後填寫任意名字,這裡我填寫的是 Fiddler,點選建立即可。
然後填寫以上內容,代理伺服器為本機,埠號為上面在 Fiddler 設定的埠號,填寫完在左下角點應用選項才算設定完畢。
設定完之後再在瀏覽器外掛處點選該外掛,然後選擇該模式即可開始抓包
設定完之後第一次開啟可能是這樣的
關閉 Fiddler 再重新開啟就可以了
3.2 進行手機端抓包
手機端的抓包也是很容易的,先是設定好 Fiddler 的允許抓取遠端客戶端。
這時用手機連線wifi,然後長按修改網路(不同安卓手機不一樣)
點選代理,然後點選手動
主機名就寫你電腦上的 ip 地址,檢視 ip 地址可以在控制檯上輸入 ipconfig 即可
由於我的電腦也是連線 wifi 的,所以 ip 地址對應的是 無線網路的那個,如果你的電腦是使用網線來進行上網的,那 ip 地址就是 乙太網的那個。
填完之後還不能抓取,如果直接抓取會顯示證照有問題。
我們也是需要安裝證照才可以正常抓取的。那接下來安裝證照
手機瀏覽器輸入 你的ip地址:埠號 進入網址下載證照,如 192.168.1.2:8888, 埠號還是之前在 Fiddler設定的那個
點選上圖箭頭的網址進行下載即可,下載完畢之後點選安裝即可。
如果你是 miui 系統的機子,就需要進入wifi 設定的介面進行安裝
點選 高階設定 --> 安裝證照 即可,期間需要密碼驗證或者設定密碼之類的設定即可。
還有一個大坑,就是如果你的機子 是安卓 9 而是 miui 系統(其他系統沒測試過)的話,安裝了證照也是沒用的,在進行抓包的時候還是會提示證照有問題。安卓 8 版本的我沒有測試過,不過安卓 7 版本以下的估計都可以。
弄完了以上的東西就可以抓包了,如果設定完了,網路沒了,還是那樣子,第一次設定完需要重啟下 Fiddler 軟體就可以抓包了。
3.3 抓包內容的介紹
很明顯左邊的就是捕捉的請求和響應,右邊的就是對應請求的詳細資訊,比如請求頭,表單資訊,比如上圖下面箭頭所指的就是表單資訊。,如果這些資訊看到的內容很少的話,可以直接點選下面的 View in Notepad 按鈕就可以在筆記本中顯示出來,非常方便。
左邊每列代表的含義為:
左邊第一列中每個圖片代表的含義為:
3.4 再說幾個常用的功能
查詢:抓包時,經常會抓到一堆不重要的包,而需要找的包夾雜在裡面非常難找,所以就可以用關鍵字來查詢,入口為:
也可以直接點選這個
或者直接按快捷鍵 Ctrl + F 即可
這裡的功能很強大,可以只查詢請求或者響應或者兩個都查,還可以用正規表示式來查詢,就不一 一說了。
對映:也就是重定向,將伺服器端的響應內容可以更改為客戶端上的檔案,功能也是很強大,之前我在爬取網易雲評論時也是弄過的,有興趣的可以看看利用python爬取網易雲音樂,並把資料存入mysql。
在這裡填寫對應的規則和檔案即可
還有一個類似於 postman的功能,就是下面這個
就是在這裡模擬請求,有什麼需要模擬的話可以先在這裡模擬一次,成功之後再用程式設計去敲出來也是不錯的,非常強大。
由於篇幅問題,還有一些功能就暫時不介紹了,等以後用到的時候會說哈,比如斷點除錯之類的,到時記得時刻關注哦!