您好,登錄后才能下訂單哦!
這篇文章主要介紹Python爬蟲中Headers的設置方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
首先,打開我們的瀏覽器,調試瀏覽器 F12,我用的是 Chrome,打開網絡監聽,示意如下,比如知乎,點登錄之后,我們會發現登陸之后界面都變化了,出現一個新的界面,實質上這個頁面包含了許許多多的內容,這些內容也不是一次性就加載完成的,實質上是執行了好多次請求,一般是首先請求 HTML 文件,然后加載 JS,CSS 等等,經過多次請求之后,網頁的骨架和肌肉全了,整個網頁的效果也就出來了。
拆分這些請求,我們只看一第一個請求,你可以看到,有個 Request URL,還有 headers,下面便是 response,圖片顯示得不全,小伙伴們可以親身實驗一下。那么這個頭中包含了許許多多是信息,有文件編碼啦,壓縮方式啦,請求的 agent 啦等等。 其中,agent 就是請求的身份,如果沒有寫入請求身份,那么服務器不一定會響應,所以可以在 headers 中設置 agent, 例如下面的例子,這個例子只是說明了怎樣設置的 headers,小伙伴們看一下設置格式就好。
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()
這樣,我們設置了一個 headers,在構建 request 時傳入,在請求時,就加入了 headers 傳送,服務器若識別了是瀏覽器發來的請求,就會得到響應。 另外,我們還有對付” 反盜鏈” 的方式,對付防盜鏈,服務器會識別 headers 中的 referer 是不是它自己,如果不是,有的服務器不會響應,所以我們還可以在 headers 中加入 referer 例如我們可以構建下面的 headers
headers = { 'User-Agent' : 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' , 'Referer':'http://www.zhihu.com/articles' }
同上面的方法,在傳送請求時把 headers 傳入 Request 參數里,這樣就能應付防盜鏈了。 另外 headers 的一些屬性,下面的需要特別注意一下:
User-Agent : 有些服務器或 Proxy 會通過該值來判斷是否是瀏覽器發出的請求 Content-Type : 在使用 REST 接口時,服務器會檢查該值,用來確定 HTTP Body 中的內容該怎樣解析。 application/xml : 在 XML RPC,如 RESTful/SOAP 調用時使用 application/json : 在 JSON RPC 調用時使用 application/x-www-form-urlencoded : 瀏覽器提交 Web 表單時使用 在使用服務器提供的 RESTful 或 SOAP 服務時, Content-Type 設置錯誤會導致服務器拒絕服務
其他的有必要的可以審查瀏覽器的 headers 內容,在構建時寫入同樣的數據即可。
以上是Python爬蟲中Headers的設置方法的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。