Python爬蟲基礎講解(五) 響應

2022-09-19 01:00:14 字數 2530 閱讀 1163

http響應報文也由三部分組成:響應行、響應頭、響應體

響應行一般由協議版本、狀態碼及其描述組成比如http/1.1 200 ok

其中協議版本http/1.1或者http/1.0,200就是它的狀態碼,ok則為它的描述。

響應頭用於描述伺服器的基本資訊,以及資料的描述,伺服器通過這些資料的描述資訊,可以通知客戶端如何處理等一會兒它回送的資料。

設定http響應頭往往和狀態碼結合起來。例如,有好幾個表示"文件位置已經改變」的狀態**都伴隨著乙個location頭,而401(unauthorized)狀態**則必須伴隨乙個www-authenticate頭。然而,即使在沒有設定特殊含義的狀態**時,指定應答頭也是很有用的。應答頭可以用來完成:設定cookie,指定修改日期,指示瀏覽器按照指定的間隔重新整理頁面,宣告文件的長度以便利用持久http連線,..等等許多其他任務。

常見的響應頭欄位含義

a77ow:伺服器支援哪些請求方法(如get、post等)。

content-length:表示內容長度。只有當瀏覽器使用持久http連線時才需要這個資料。

content- type:表示後面的文件屬於什麼mime型別。servlet預設為text/plain,但通常需要顯式地指定為text/html。由於經常要設定content-type,因此httpservletresponse提供了乙個專用的方法setcontenttype。

date:當前的gmt時間,例如,date:mon,31dec200104:25:57gmt。date描述的時間表示世界標準時,換算成本地時間,需要知道使用者所在的時區。你可以用setdateheader來設定這個頭以避免轉換時間格式的麻煩。

expires:告訴瀏覽器把回送的資源快取多長時間,-1或o則是不快取。

last-modified:文件的最後改動時間。客戶可以通過lf-modified-since請求頭提供乙個日期,該請求將被視為乙個條件get,只有改動時間遲於指定時間的文件才會返回,否則返回乙個304(not modified)狀態。last-modified也可用setdateheader方法來設定。

location:這個頭配合302狀態碼使用,用於重定向接收者到乙個新url位址。表示客戶應當到**去提取文件。location通常不是直接設定的,而是通過httpservletresponse的sendredirect方法,該方法同時設定狀態**為302。

refresh:告訴瀏覽器隔多久重新整理一次,以秒計。

server:伺服器通過這個頭告訴瀏覽器伺服器的型別。server響應頭包含處理請求的原始伺服器的軟體資訊。此域能包含多個產品標識和注釋,產品標識一般按照重要性排序。servlet一般不設定這個值,而是由web伺服器自己設定。

set-cookie:設定和頁面關聯的cookie。servlet不應使用response.setheader("set-cookie",...),而是應使用httpservletresponse提供的專用方法addcookie。

transfer-encoding:告訴瀏覽器資料的傳送格式。

www-authenticate:客戶應該在authorization頭中提供什麼型別的授權資訊?在包401(unauthorized)狀態行的應答中這個頭是必需的。

setcontenttype:設定content-type頭。大多數servlet都要用到這個方法。

setcontentlength:設定content-length頭。對於支援持久http連線的瀏覽器來說,這個函式是很有用的。

addcookie:設定乙個cookie(servlet api中沒有setcookie方法,因為應答往往包含多個set-cookie頭)。

響應體就是響應的訊息體,如果是純資料就是返回純資料,如果請求的是html頁面,那麼返回的就是html**,如果是js就是js**,如此之類。

#

獲取響應體文字資料

response.text

#獲取響應體二進位制資料

response.content

#獲取響應體json資料

response.json()

#獲取響應體響應頭資訊

response. headers

#設定響應體的編碼

response.encoding

#自動識別響應體的編碼

#獲取響應體的cookies資訊,獲取到的是cookiejar物件

response.cookies

#獲取響應體的ur1位址

response.url

#獲取響應體的狀態碼

response.status_code

響應狀態碼可以很方便的檢視我們的響應狀態,我們可以檢測響應狀態碼:

200:請求正常,伺服器正常的返回資料。

301:永久重定向。比如在訪問www.jingdong .com的時候會重定向到www.jd.com 。

302:臨時重定向。比如在訪問乙個需要登入的頁面的時候,而此時沒有登入,那麼就會重定向到登入頁面。

400:請求的ur1在伺服器上找不到。換句話說就是請求ur1錯誤。

403:伺服器拒絕訪問,許可權不夠。

500:伺服器內部錯誤。可能是伺服器出現bug了。

Python爬蟲基礎講解之請求

url又叫作統一資源定位符,是用於完整地描述internet上網頁和其他資源的位址的一種方法。類似於windows的檔案路徑。1.http 這個是協議,也就是http超文字傳輸協議,也就是網頁在網上傳輸的協議。2.mail 這個是伺服器名代表著是乙個郵箱伺服器,所以是mail。3.163.com 這...

python爬蟲案例講解 Python爬蟲案例集合

伺服器返回的類檔案物件支援python檔案物件的操作方法 read 方法就是讀取檔案裡的全部內容,返回字串 html response.read 列印響應內容 我們需要稍微偽裝下,要不然第一步就會被反爬蟲發現 usr bin env python coding utf 8 import urllib...

python基礎整理複習五 爬蟲

1.request來獲取頁面內容 response.text 獲取url內容 soup 格式化的 response.text 獲取url下的頁面內容 defget page url response requests.get url soup beautifulsoup response.text,...