1 引言
在編寫網(wǎng)絡(luò)爬蟲時(shí)俭缓,第一步(也是極為關(guān)鍵一步)就是對(duì)網(wǎng)絡(luò)的請(qǐng)求(request)和回復(fù)(response)進(jìn)行分析克伊,尋找其中的規(guī)律,然后才能通過網(wǎng)絡(luò)爬蟲進(jìn)行模擬华坦。瀏覽器大多也自帶有調(diào)試工具可以進(jìn)行抓包分析愿吹,但是瀏覽器自帶的工具比較輕量,復(fù)雜的抓包并不支持惜姐。且有時(shí)候需要編寫手機(jī)APP爬蟲犁跪,這時(shí)候就必須需要用到其他的專業(yè)抓包工具,例如本篇介紹的Fiddler歹袁。
Python學(xué)習(xí)資料或者需要代碼坷衍、視頻加Python學(xué)習(xí)群:960410445
2 Fiddler簡(jiǎn)介
Fiddler是位于客戶端和服務(wù)器端的HTTP代理,也是目前最常用的http抓包工具之一,它能夠記錄客戶端和服務(wù)器之間的所有 HTTP請(qǐng)求条舔,可以針對(duì)特定的HTTP請(qǐng)求枫耳,分析請(qǐng)求數(shù)據(jù)、設(shè)置斷點(diǎn)逞刷、調(diào)試web應(yīng)用嘉涌、修改請(qǐng)求的數(shù)據(jù)妻熊,甚至可以修改服務(wù)器返回的數(shù)據(jù)夸浅,功能非常強(qiáng)大,是web調(diào)試的利器扔役。
當(dāng)然帆喇,除了Fiddler之外,抓包工具還有Firebug亿胸、Wireshark坯钦、Httpwatch等,為什么我們要選擇fiddler呢侈玄?原因如下:
⊥竦丁(1)Firebug雖然可以抓包,但是對(duì)于分析http請(qǐng)求的詳細(xì)信息序仙,不夠強(qiáng)大突颊。模擬http請(qǐng)求的功能也不夠,且firebug常常是需要“無刷新修改”潘悼,如果刷新了頁面律秃,所有的修改都不會(huì)保存。
≈位健(2)Wireshark是通用的抓包工具棒动,但是比較龐大,對(duì)于只需要抓取http請(qǐng)求的應(yīng)用來說宾添,似乎有些大材小用船惨,總有一點(diǎn)殺雞用牛刀的感覺柜裸。
(3)Httpwatch也是比較常用的http抓包工具粱锐,但是只支持IE和firefox瀏覽器(其他瀏覽器可能會(huì)有相應(yīng)的插件)粘室,對(duì)于想要調(diào)試chrome瀏覽器的http請(qǐng)求,似乎稍顯無力卜范,而Fiddler 是一個(gè)使用本地 127.0.0.1:8888 的 HTTP 代理衔统,任何能夠設(shè)置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應(yīng)用程序都可以使用 Fiddler。
3 Fiddler界面介紹
Fiddler界面如下:
Fiddler界面左側(cè)的小窗口列表展示的是所有Fiddler抓取的包海雪,各個(gè)包每個(gè)字段還有圖標(biāo)的含義如下表所示:
數(shù)據(jù)包屬性第一列的圖標(biāo)含義如下表所示:
Fiddler界面右側(cè)是用來顯示選中數(shù)據(jù)報(bào)的詳細(xì)信息锦爵,上半部分顯示的是數(shù)據(jù)報(bào)的請(qǐng)求信息,下半部分顯示的是回復(fù)信息:
4 PC端網(wǎng)頁會(huì)話數(shù)據(jù)包捕獲
4.1 HTTP會(huì)話數(shù)據(jù)包捕獲
Fiddler打開后奥裸,會(huì)自動(dòng)將瀏覽器代理設(shè)置為“127.0.0.1:8888”险掀,關(guān)閉時(shí)自動(dòng)修改為原來的代理,這一點(diǎn)上Fiddler還是比較方便的湾宙。當(dāng)然你也可以手動(dòng)設(shè)置瀏覽器代理樟氢。開始抓包是必須確保猜到了file下的Capture Traffic是勾選上的,當(dāng)然也可以通過下方的Capturing按鈕開啟或關(guān)閉侠鳄。
所以埠啃,若是要捕獲HTTPS協(xié)議會(huì)話信息,要進(jìn)行進(jìn)一步的配置伟恶。配置過程如下:
第一步:打開Tools – Options碴开,然后將彈出窗口內(nèi)HTTPS選項(xiàng)下的所有可選項(xiàng)都勾選上。
? 有的網(wǎng)上教程說到此點(diǎn)擊OK就可以了博秫,但事實(shí)證明潦牛,如果就設(shè)置到這一步,打開HTTPS網(wǎng)頁會(huì)失敗挡育,出現(xiàn)警告“您的連接并不安全”巴碗,如下圖所示。所以還要進(jìn)行第二步操作即寒。
第二步:還是在第一步中打開的彈出窗口內(nèi)橡淆,點(diǎn)擊action,然后選擇第二項(xiàng)蒿叠,將證書到處到桌面明垢。
? 第三步:打開firefox瀏覽器,選項(xiàng)-隱私與安全市咽,在最下面找到證書設(shè)置項(xiàng)痊银,點(diǎn)擊“查看證書”,導(dǎo)入在第二步中到處到桌面的證書施绎,勾選兩個(gè)信任之后確認(rèn)退出溯革。
此時(shí)贞绳,再次打開百度首頁,查看Fiddler捕獲的信息致稀,發(fā)現(xiàn)可以正常訪問百度冈闭,且Fiddler沒有報(bào)警報(bào)信息,且成功捕獲如下所示:?
5 手機(jī)端APP會(huì)話信息采集
除了采集電腦瀏覽器的網(wǎng)頁會(huì)話外抖单,F(xiàn)iddler還能采集手機(jī)APP的會(huì)話信息萎攒。當(dāng)然,這還是需要經(jīng)過一番設(shè)置才行矛绘。步驟如下:
第一步:用電腦開啟一個(gè)無線網(wǎng)(360WiFi耍休、獵豹wifi等都可以實(shí)現(xiàn)),然后讓手機(jī)通過電腦開啟的無線網(wǎng)上網(wǎng)货矮。
第二步:依次點(diǎn)擊打開Tools-Options-Connections羊精,然后勾選第二項(xiàng)“Allow remote compute to connect”。
第三步:到手機(jī)中將手機(jī)的網(wǎng)絡(luò)代理改為電腦的fiddler囚玫。首先查看電腦的ip地址喧锦,然后在手機(jī)中一次打開“設(shè)置-無線和網(wǎng)絡(luò)-wlan”,連接上電腦上剛創(chuàng)建的無線網(wǎng)抓督,然后長(zhǎng)按該無線網(wǎng)燃少,依次點(diǎn)擊“修改網(wǎng)絡(luò)-顯示高級(jí)設(shè)置-代理-手動(dòng)”,將服務(wù)器主機(jī)名設(shè)置為電腦的ip地址本昏,端口設(shè)置為8888供汛。如下圖所示:
設(shè)置好后,我們Fiddler就可以成功捕獲手機(jī)APP的會(huì)話信息了涌穆。
6 會(huì)話過濾功能
當(dāng)我們打開Fiddler進(jìn)行會(huì)話捕獲時(shí),在默認(rèn)情況下雀久,F(xiàn)iddler會(huì)不會(huì)所有的會(huì)話宿稀,這樣就造成不會(huì)的會(huì)話過多,不利于我們分析赖捌,這時(shí)候我們可以用到Filters功能進(jìn)行會(huì)話過濾祝沸。Filters三種過濾模式供選擇:
No Host Filter:不設(shè)置域名過濾;
Hide the following Hosts:設(shè)置的這些域名相關(guān)會(huì)話將在左側(cè)會(huì)話列表中被隱藏越庇;
Show only the following Hosts:只在會(huì)話列表中顯示與設(shè)置的這些域名相關(guān)的會(huì)話罩锐;
Flag the following Hosts:與設(shè)置的域名相關(guān)會(huì)話將在左側(cè)會(huì)話列表中高亮想顯示。
如果要設(shè)置多個(gè)域名卤唉,域名之間用分號(hào)分開涩惑。切記,選好后要點(diǎn)擊Actions按鈕桑驱,然后點(diǎn)擊Runfiltersets now讓設(shè)置生效竭恬。如果我們只想顯示百度和CSDN的會(huì)話信息跛蛋,設(shè)置過程如下圖所示:
7 總結(jié)
Fiddler是一個(gè)功能強(qiáng)大的網(wǎng)絡(luò)抓包工具,本文對(duì)如何用Fiddler抓取HTTP痊硕、HTTPS赊级、手機(jī)APP會(huì)話數(shù)據(jù)報(bào)介紹了,另外還補(bǔ)充介紹了數(shù)據(jù)包過濾的功能岔绸。當(dāng)然理逊,F(xiàn)iddler的功能遠(yuǎn)不止這些,不過本文介紹的操作用于一般的網(wǎng)絡(luò)爬蟲數(shù)據(jù)包分析足以盒揉。