Python爬蟲代理工具Fiddler是什么-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

創(chuàng)新互聯(lián)是專業(yè)的福建網(wǎng)站建設(shè)公司,福建接單;提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行福建網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

這篇文章將為大家詳細(xì)講解有關(guān)Python爬蟲代理工具Fiddler是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Fiddler基礎(chǔ)知識

Fiddler是強(qiáng)大的抓包工具,它的原理是以web代理服務(wù)器的形式進(jìn)行工作的,使用的代理地址是:127.0.0.1,端口默認(rèn)為8888,我們也可以通過設(shè)置進(jìn)行修改。

代理就是在客戶端和服務(wù)器之間設(shè)置一道關(guān)卡,客戶端先將請求數(shù)據(jù)發(fā)送出去后,代理服務(wù)器會將數(shù)據(jù)包進(jìn)行攔截,代理服務(wù)器再冒充客戶端發(fā)送數(shù)據(jù)到服務(wù)器;同理,服務(wù)器將響應(yīng)數(shù)據(jù)返回,代理服務(wù)器也會將數(shù)據(jù)攔截,再返回給客戶端。

Fiddler可以抓取支持http代理的任意程序的數(shù)據(jù)包,如果要抓取https會話,要先安裝證書。

HTTP協(xié)議

要分析Fiddler抓取的數(shù)據(jù)包,我們首先要熟悉HTTP協(xié)議。HTTP即超文本傳輸協(xié)議,是一個基于請求與響應(yīng)模式的、無狀態(tài)的、應(yīng)用層的協(xié)議,絕大多數(shù)的Web開發(fā),都是構(gòu)建在HTTP協(xié)議之上的Web應(yīng)用。

HTTP的工作過程:當(dāng)我們請求一個超鏈接時,HTTP就開始工作了,客戶端先發(fā)送一個請求到服務(wù)器,請求內(nèi)容包括:協(xié)議版本號、請求地址、請求方式、請求頭和請求參數(shù);服務(wù)器收到請求后做相應(yīng)的處理,并將響應(yīng)數(shù)據(jù)返回到客戶端,響應(yīng)內(nèi)容包括:協(xié)議版本號、狀態(tài)碼和響應(yīng)數(shù)據(jù)。前端根據(jù)響應(yīng)數(shù)據(jù)做相應(yīng)的處理,就是最終我們看到的內(nèi)容。這些過程是HTTP自動完成的,我們只是輸入或點擊請求地址,然后查看前端給我們展示的內(nèi)容。更多關(guān)于HTTP協(xié)議的介紹請參考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html

請求方式常用的有:GET、PUT、POST、DELETE。

HTTP狀態(tài)碼主要分為5類:以1開頭的代表請求已被接受,需要繼續(xù)處理;以2開頭的代表請求已成功被服務(wù)器接收、理解、并接受;以3開頭的代表需要客戶端采取進(jìn)一步的操作才能完成請求;以4開頭的代表了客戶端看起來可能發(fā)生了錯誤,妨礙了服務(wù)器的處理;以5開頭的代表了服務(wù)器在處理請求的過程中有錯誤或者異常狀態(tài)發(fā)生,也有可能是服務(wù)器意識到以當(dāng)前的軟硬件資源無法完成對請求的處理。

常見的主要有:200:服務(wù)器成功處理了請求;404:未找到資源;500:內(nèi)部服務(wù)器錯誤;503:服務(wù)器目前無法為請求提供服務(wù);302:請求的URL已臨時轉(zhuǎn)移;304:客戶端的緩存資源是最新的,要客戶端使用緩存。

每個狀態(tài)碼的詳細(xì)介紹請參考:https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin

Fiddler的使用

Fiddler是一個很好用的抓包工具,可以將網(wǎng)絡(luò)傳輸發(fā)送與接收的數(shù)據(jù)包進(jìn)行截獲、重發(fā)、編輯等操作。也可以用來檢測流量。

Fiddler安裝后,設(shè)置的端口默認(rèn)為8888,當(dāng)Fiddler啟動后,默認(rèn)將IE的代理設(shè)為了127.0.0.1:8888,而其他如火狐瀏覽器需要手動設(shè)置代理后才可以抓包。設(shè)置內(nèi)容如圖:

Python爬蟲代理工具Fiddler是什么

1)要使用Fiddler進(jìn)行抓包,首先需要確保Capture Traffic是開啟的(安裝后是默認(rèn)開啟的),勾選File->Capture Traffic,也可以直接點擊Fiddler界面左下角的圖標(biāo)開啟和關(guān)閉抓包。

Python爬蟲代理工具Fiddler是什么

2)所以基本上不需要做什么配置,安裝后就可以進(jìn)行抓包了。那么我們怎么分析抓到的這些數(shù)據(jù)包呢?如圖所示的區(qū)域為數(shù)據(jù)包列表,要分析這些數(shù)據(jù)包,首先要了解各字段的含義。

Python爬蟲代理工具Fiddler是什么

#:順序號,按照抓包的順序從1遞增

Result:HTTP狀態(tài)碼      

Protocol:請求使用的協(xié)議,如HTTP/HTTPS/FTP等

HOST:請求地址的主機(jī)名或域名

URL:請求資源的位置

Body:請求大小

Caching:請求的緩存過期時間或者緩存控制值

Content-Type:請求響應(yīng)的類型

Process:發(fā)送此請求的進(jìn)程ID

Comments:備注 

Custom:自定義值

3)每個Fiddler抓取到的數(shù)據(jù)包都會在該列表中展示,點擊具體的一條數(shù)據(jù)包可以在右側(cè)菜單點擊Insepector查看詳細(xì)內(nèi)容。主要分為請求(即客戶端發(fā)出的數(shù)據(jù))和響應(yīng)(服務(wù)器返回的數(shù)據(jù))兩部分。

Python爬蟲代理工具Fiddler是什么

4)HTTP Request Header:以百度為例,查看請求百度主頁這條數(shù)據(jù)包的請求數(shù)據(jù),從上面的Headers中可以看到如下內(nèi)容:

Python爬蟲代理工具Fiddler是什么

請求方式:GET

協(xié)議: HTTP/1.1

Client 頭域:

Accept: text/html, application/xhtml+xml, image/jxr, */*                             ---------瀏覽器端可以接受的媒體類型

Accept-Encoding: gzip, deflate                                                                  ---------壓縮方法

Accept-Language: zh-CN                                                                          ---------語言類型

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393                             ---------客戶端使用的操作系統(tǒng)和瀏覽器的名稱和版本

COOKIE頭域:將cookie值發(fā)送給服務(wù)器

Transport 頭域:

Connection:當(dāng)網(wǎng)頁打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接是否關(guān)閉。keep-alive表示不會關(guān)閉,客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,會繼續(xù)使用這一條已經(jīng)建立的連接;close表示關(guān)閉,客戶端再次訪問這個服務(wù)器上的網(wǎng)頁,需要重新建立連接。

HOST:主機(jī)名或域名,若沒有指定端口,表示使用默認(rèn)端口80.

5)HTTP Response Header:繼續(xù)以百度為例,如圖所示:

Python爬蟲代理工具Fiddler是什么

協(xié)議:HTTP/1.1

狀態(tài)碼:200

Cache頭域:

Cache-Control: private                                               ---------此響應(yīng)消息不能被共享緩存處理,對于其他用戶的請求無效

Date: Sat, 05 Aug 2017 04:37:43 GMT                      ---------生成消息的具體時間和日期

Expires: Sat, 05 Aug 2017 04:37:42 GMT                  ---------瀏覽器會在指定過期時間內(nèi)使用本地緩存

Cookie/Login 頭域:

Set-Cookie: BDSVRTM=264; path=/                           ---------把cookie發(fā)送到客戶端

Set-Cookie: BD_HOME=1; path=/

Set-Cookie: H_PS_PSSID=1425_21097_22157; path=/; domain=.baidu.com

Entity頭域

Content-Length: 202740                                              ---------正文長度

Content-Type: text/html;charset=utf-8                         ---------告知客戶端服務(wù)器本身響應(yīng)的對象的類型和字符集

Miscellaneous 頭域:

Bdpagetype: 2

Bdqid: 0x99791efd00036253

Bduserid: 2577220064

Server: BWS/1.1                                                          ---------指明HTTP服務(wù)器的軟件信息

X-Ua-Compatible: IE=Edge,chrome=1

Security頭域:

Strict-Transport-Security: max-age=172800                ---------基于安全考慮而需要發(fā)送的參數(shù),關(guān)于這個參數(shù)的解釋,請參考:http://www.freebuf.com/articles/web/66827.html

Transport頭域:

Connection: Keep-Alive

6)TextView:顯示請求或響應(yīng)的數(shù)據(jù)。

7)WebForms:請求部分以表單形式顯示所有的請求參數(shù)和參數(shù)值;響應(yīng)部分與TextView內(nèi)容是一樣的。

8)Auth:顯示認(rèn)證信息,如Authorization

9)Cookies:顯示所有cookies

10)Raw:顯示Headers和Body數(shù)據(jù)

11)JSON:若請求或響應(yīng)數(shù)據(jù)是json格式,以json形式顯示請求或響應(yīng)內(nèi)容

12)XML:若請求或響應(yīng)數(shù)據(jù)是xml格式,以xml形式顯示請求或響應(yīng)內(nèi)容

13)上面是以百度主頁為例,百度主頁采用的是GET請求,在TextView中沒有請求body,我們再以無憂行網(wǎng)站登錄接口為例,它是一個POST請求,除了請求頭外,在TextView中多了請求數(shù)據(jù)。這也是GET請求和POST請求的一個區(qū)別。GET請求是將請求參數(shù)放在url中,而POST請求一般是將請求參數(shù)放在請求body中。

Python爬蟲代理工具Fiddler是什么Python爬蟲代理工具Fiddler是什么

總結(jié):

通過Fiddler可以抓取請求和響應(yīng)參數(shù),通過對參數(shù)進(jìn)行分析,可以定位是前端還是后臺問題。例如我們在測試登錄接口時,輸入了正確的手機(jī)號和密碼,但前端提示“請輸入正確的用戶名和密碼”;僅僅通過界面提示我們只能描述bug表象,但不能分析出問題原因。假設(shè)通過抓包我們發(fā)現(xiàn)是由于前端參數(shù)名錯誤或參數(shù)值為空,從而導(dǎo)致后臺報錯。這個時候我們將bug指向前端開發(fā)人員,并將參數(shù)數(shù)據(jù)和接口文檔中對應(yīng)的報文數(shù)據(jù)作為附件上傳,是不是可以提高bug的解決效率呢?Fiddler在實際的功能測試中有很大的作用,一方面幫助我們更好的了解某個業(yè)務(wù)中客戶端和服務(wù)器端是通過哪些接口進(jìn)行請求的,從而更好的了解代碼邏輯;另一方面,我們還可以通過響應(yīng)數(shù)據(jù)判斷哪里出現(xiàn)了問題,例如可能服務(wù)器程序掛了,導(dǎo)致前端報“服務(wù)器故障”,這時我們通過抓包發(fā)現(xiàn)響應(yīng)數(shù)據(jù)返回502,這時我們可以手動去重啟服務(wù)或是聯(lián)系運(yùn)維重啟服務(wù),從而提高問題的解決效率。

關(guān)于Python爬蟲代理工具Fiddler是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

本文名稱:Python爬蟲代理工具Fiddler是什么-創(chuàng)新互聯(lián)
URL分享:http://muchs.cn/article2/doddoc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App設(shè)計外貿(mào)建站、用戶體驗、云服務(wù)器、網(wǎng)站排名、全網(wǎng)營銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司