溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python爬蟲(chóng)中Headers的設(shè)置方法

發(fā)布時(shí)間:2020-11-12 09:45:47 來(lái)源:億速云 閱讀:541 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹Python爬蟲(chóng)中Headers的設(shè)置方法,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

首先,打開(kāi)我們的瀏覽器,調(diào)試瀏覽器 F12,我用的是 Chrome,打開(kāi)網(wǎng)絡(luò)監(jiān)聽(tīng),示意如下,比如知乎,點(diǎn)登錄之后,我們會(huì)發(fā)現(xiàn)登陸之后界面都變化了,出現(xiàn)一個(gè)新的界面,實(shí)質(zhì)上這個(gè)頁(yè)面包含了許許多多的內(nèi)容,這些內(nèi)容也不是一次性就加載完成的,實(shí)質(zhì)上是執(zhí)行了好多次請(qǐng)求,一般是首先請(qǐng)求 HTML 文件,然后加載 JS,CSS 等等,經(jīng)過(guò)多次請(qǐng)求之后,網(wǎng)頁(yè)的骨架和肌肉全了,整個(gè)網(wǎng)頁(yè)的效果也就出來(lái)了。

Python爬蟲(chóng)中Headers的設(shè)置方法

拆分這些請(qǐng)求,我們只看一第一個(gè)請(qǐng)求,你可以看到,有個(gè) Request URL,還有 headers,下面便是 response,圖片顯示得不全,小伙伴們可以親身實(shí)驗(yàn)一下。那么這個(gè)頭中包含了許許多多是信息,有文件編碼啦,壓縮方式啦,請(qǐng)求的 agent 啦等等。 其中,agent 就是請(qǐng)求的身份,如果沒(méi)有寫(xiě)入請(qǐng)求身份,那么服務(wù)器不一定會(huì)響應(yīng),所以可以在 headers 中設(shè)置 agent, 例如下面的例子,這個(gè)例子只是說(shuō)明了怎樣設(shè)置的 headers,小伙伴們看一下設(shè)置格式就好。

import urllib  
import urllib2  
 
url = 'http://www.server.com/login'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  
values = {'username' : 'cqc',  'password' : 'XXXX' }  
headers = { 'User-Agent' : user_agent }  
data = urllib.urlencode(values)  
request = urllib2.Request(url, data, headers)  
response = urllib2.urlopen(request)  
page = response.read()

這樣,我們?cè)O(shè)置了一個(gè) headers,在構(gòu)建 request 時(shí)傳入,在請(qǐng)求時(shí),就加入了 headers 傳送,服務(wù)器若識(shí)別了是瀏覽器發(fā)來(lái)的請(qǐng)求,就會(huì)得到響應(yīng)。 另外,我們還有對(duì)付” 反盜鏈” 的方式,對(duì)付防盜鏈,服務(wù)器會(huì)識(shí)別 headers 中的 referer 是不是它自己,如果不是,有的服務(wù)器不會(huì)響應(yīng),所以我們還可以在 headers 中加入 referer 例如我們可以構(gòu)建下面的 headers

headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'  ,
                        'Referer':'http://www.zhihu.com/articles' }

同上面的方法,在傳送請(qǐng)求時(shí)把 headers 傳入 Request 參數(shù)里,這樣就能應(yīng)付防盜鏈了。 另外 headers 的一些屬性,下面的需要特別注意一下:

User-Agent : 有些服務(wù)器或 Proxy 會(huì)通過(guò)該值來(lái)判斷是否是瀏覽器發(fā)出的請(qǐng)求 Content-Type : 在使用 REST 接口時(shí),服務(wù)器會(huì)檢查該值,用來(lái)確定 HTTP Body 中的內(nèi)容該怎樣解析。 application/xml : 在 XML RPC,如 RESTful/SOAP 調(diào)用時(shí)使用 application/json : 在 JSON RPC 調(diào)用時(shí)使用 application/x-www-form-urlencoded : 瀏覽器提交 Web 表單時(shí)使用 在使用服務(wù)器提供的 RESTful SOAP 服務(wù)時(shí), Content-Type 設(shè)置錯(cuò)誤會(huì)導(dǎo)致服務(wù)器拒絕服務(wù)

 其他的有必要的可以審查瀏覽器的 headers 內(nèi)容,在構(gòu)建時(shí)寫(xiě)入同樣的數(shù)據(jù)即可。

以上是Python爬蟲(chóng)中Headers的設(shè)置方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI