當前位置:
首頁 > 最新 > request,ProxyHandle與HttpCookiProcessor函數用法

request,ProxyHandle與HttpCookiProcessor函數用法

必要知識

在進行函數學習之前,我們需要了解瀏覽器在對伺服器數據進行請求時,發送的請求頭的信息。 請求頭中的信息,包含了瀏覽器中一些比較重要的信息。 比如use_agent,cookies,Connection,Referer等信息。

use_agent: 用來指定瀏覽器請求頭,有了use_agent, 伺服器才會去識別你是哪個瀏覽器,才會給你發送相應的數據,有時你不攜帶use_agetn, 伺服器就會識別你是一個非法的請求,而不會給你返回頁面。

cookies: 指某些網站為了辨別用戶身份而儲存在用戶本地終端(Client Side)上的數據(通常經過加密)。 比如當登錄一個網站時,如果你上次登錄過並選擇下次自動登錄,那麼下次訪問同一網站時,你不用輸入用戶名和密碼就登錄上了。

Connection: 設置連接模式,基本使用Keep-Alive模式,Keep-Alive功能使客戶端到服 務器端的連接持續有效,當出現對伺服器的後繼請求時,Keep-Alive功能避免了建立或者重新建立連接

Referer: 表示網站的來源,比如你可能是通過搜索百度, 或者搜索google來到這個網站的。 它的作用是為了防盜鏈和防止惡意請求。

狀態碼

如何判斷自己的請求是否成功呢, 我們就需要用到狀態碼。

返回200, 說明我們請求成功。

request函數

在請求時,我們用Request Headers 的配置信息模擬瀏覽器進行匹配請求,伺服器判斷你是由瀏覽器發送出的請求,從而給你返回結果。 而要設置Headers信息,模擬成瀏覽器, 就需要用Request()函數來包裝Headers的數據

參數設置:

Request(url, data=None, headers={}, origin_req_host=None, unverifiable=False, method=None)

常用參數說明

data: 登錄賬號請求數據

ProxyHandler函數

網站會檢測某一段時間內某個IP的訪問次數,如果訪問次數過多,它會禁止你的訪問,所以這個時候需要通過ProxyHandler( )設置代理,用build_opener將proxy_handler當做參數傳過來 。

ip地址我們可以從網站http://www.xicidaili.com/nn和網https://www.kuaidaili.com 中獲取到。

這樣我們就用指定ip地址請求出數據。我們在運行爬蟲的時候可以一直切換ip地址,這樣伺服器就會認為是從不同的地方登陸, 而不會封掉爬蟲。

HTTPCookiProcessor( )函數

有些網站尤其是社交類網站,需要登陸才能抓取到網站的數據。我們需要模擬用戶登陸網站,保留登陸狀態,才能獲取網站相關的內容

cookies 主要用來維持我們的登陸狀態。

比如我們在百度首頁登陸百度賬號, 然後刷新網頁,我們就會看到常用的cookies

然後我們在百度鏈接上點擊右鍵,選擇清除cookies, 再刷新網頁, 就會看到百度賬號需重新登陸。

cookie中保存中我們常見的登錄信息,我們可以用HTTPCookiProcessor獲取、存儲cookie,來爬取需要登陸認證的網頁。

以上就是request模塊中函數的全部用法


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 怪獸宇 的精彩文章:

TAG:怪獸宇 |