真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Python爬蟲代理工具Fiddler是什么

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

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對(duì)這個(gè)行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:申請(qǐng)域名、雅安服務(wù)器托管、營銷軟件、網(wǎng)站建設(shè)、昌邑網(wǎng)站維護(hù)、網(wǎng)站推廣。

Fiddler基礎(chǔ)知識(shí)

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

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

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

HTTP協(xié)議

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

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

請(qǐng)求方式常用的有:GET、PUT、POST、DELETE。

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

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

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

Fiddler的使用

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

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

Python爬蟲代理工具Fiddler是什么

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

Python爬蟲代理工具Fiddler是什么

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

Python爬蟲代理工具Fiddler是什么

#:順序號(hào),按照抓包的順序從1遞增

Result:HTTP狀態(tài)碼    

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

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

URL:請(qǐng)求資源的位置

Body:請(qǐng)求大小

Caching:請(qǐng)求的緩存過期時(shí)間或者緩存控制值

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

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

Comments:備注 

Custom:自定義值

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

Python爬蟲代理工具Fiddler是什么

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

Python爬蟲代理工具Fiddler是什么

請(qǐng)求方式: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表示不會(huì)關(guān)閉,客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接;close表示關(guān)閉,客戶端再次訪問這個(gè)服務(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)消息不能被共享緩存處理,對(duì)于其他用戶的請(qǐng)求無效

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

Expires: Sat, 05 Aug 2017 04:37:42 GMT                  ---------瀏覽器會(huì)在指定過期時(shí)間內(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)的對(duì)象的類型和字符集

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)于這個(gè)參數(shù)的解釋,請(qǐng)參考:http://www.freebuf.com/articles/web/66827.html

Transport頭域:

Connection: Keep-Alive

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

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

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

9)Cookies:顯示所有cookies

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

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

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

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

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

總結(jié):

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

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


本文標(biāo)題:Python爬蟲代理工具Fiddler是什么
文章出自:http://weahome.cn/article/gisjec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部