1. 程式人生 > >網路爬蟲中Fiddler抓取PC端網頁資料包與手機端APP資料包

網路爬蟲中Fiddler抓取PC端網頁資料包與手機端APP資料包

1 引言

  在編寫網路爬蟲時,第一步(也是極為關鍵一步)就是對網路的請求(request)和回覆(response)進行分析,尋找其中的規律,然後才能通過網路爬蟲進行模擬。瀏覽器大多也自帶有除錯工具可以進行抓包分析,但是瀏覽器自帶的工具比較輕量,複雜的抓包並不支援。且有時候需要編寫手機APP爬蟲,這時候就必須需要用到其他的專業抓包工具,例如本篇介紹的Fiddler。

Python學習資料或者需要程式碼、視訊加Python學習群:960410445

2 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。

3 Fiddler介面介紹

  Fiddler介面如下:

Fiddler介面左側的小視窗列表展示的是所有Fiddler抓取的包,各個包每個欄位還有圖示的含義如下表所示:


資料包屬性第一列的圖示含義如下表所示:


Fiddler介面右側是用來顯示選中資料報的詳細資訊,上半部分顯示的是資料報的請求資訊,下半部分顯示的是回覆資訊:

4 PC端網頁會話資料包捕獲

4.1 HTTP會話資料包捕獲

Fiddler開啟後,會自動將瀏覽器代理設定為“127.0.0.1:8888”,關閉時自動修改為原來的代理,這一點上Fiddler還是比較方便的。當然你也可以手動設定瀏覽器代理。開始抓包是必須確保猜到了file下的Capture Traffic是勾選上的,當然也可以通過下方的Capturing按鈕開啟或關閉。

所以,若是要捕獲HTTPS協議會話資訊,要進行進一步的配置。配置過程如下:

第一步:開啟Tools – Options,然後將彈出視窗內HTTPS選項下的所有可選項都勾選上。

   有的網上教程說到此點選OK就可以了,但事實證明,如果就設定到這一步,開啟HTTPS網頁會失敗,出現警告“您的連線並不安全”,如下圖所示。所以還要進行第二步操作。

  第二步:還是在第一步中開啟的彈出視窗內,點選action,然後選擇第二項,將證書到處到桌面。

   第三步:開啟firefox瀏覽器,選項-隱私與安全,在最下面找到證書設定項,點選“檢視證書”,匯入在第二步中到處到桌面的證書,勾選兩個信任之後確認退出。

此時,再次開啟百度首頁,檢視Fiddler捕獲的資訊,發現可以正常訪問百度,且Fiddler沒有報警報資訊,且成功捕獲如下所示: 

5 手機端APP會話資訊採集

  除了採集電腦瀏覽器的網頁會話外,Fiddler還能採集手機APP的會話資訊。當然,這還是需要經過一番設定才行。步驟如下:

  第一步:用電腦開啟一個無線網(360WiFi、獵豹wifi等都可以實現),然後讓手機通過電腦開啟的無線網上網。

  第二步:依次點選開啟Tools-Options-Connections,然後勾選第二項“Allow remote compute to connect”。

  第三步:到手機中將手機的網路代理改為電腦的fiddler。首先檢視電腦的ip地址,然後在手機中一次開啟“設定-無線和網路-wlan”,連線上電腦上剛建立的無線網,然後長按該無線網,依次點選“修改網路-顯示高階設定-代理-手動”,將伺服器主機名設定為電腦的ip地址,埠設定為8888。如下圖所示:

  設定好後,我們Fiddler就可以成功捕獲手機APP的會話資訊了。

6 會話過濾功能

  當我們開啟Fiddler進行會話捕獲時,在預設情況下,Fiddler會不會所有的會話,這樣就造成不會的會話過多,不利於我們分析,這時候我們可以用到Filters功能進行會話過濾。Filters三種過濾模式供選擇:

  No Host Filter:不設定域名過濾;

  Hide the following Hosts:設定的這些域名相關會話將在左側會話列表中被隱藏;

  Show only the following Hosts:只在會話列表中顯示與設定的這些域名相關的會話;

  Flag the following Hosts:與設定的域名相關會話將在左側會話列表中高亮想顯示。

  如果要設定多個域名,域名之間用分號分開。切記,選好後要點選Actions按鈕,然後點選Runfiltersets now讓設定生效。如果我們只想顯示百度和CSDN的會話資訊,設定過程如下圖所示:

7 總結

  Fiddler是一個功能強大的網路抓包工具,本文對如何用Fiddler抓取HTTP、HTTPS、手機APP會話資料報介紹了,另外還補充介紹了資料包過濾的功能。當然,Fiddler的功能遠不止這些,不過本文介紹的操作用於一般的網路爬蟲資料包分析足以。