上一節(jié)我們給大家介紹了Python爬蟲庫(kù)requests響應(yīng)狀態(tài)碼,今天為大家介紹下Requests 響應(yīng)頭相關(guān)內(nèi)容。
我們可以查看以一個(gè) Python 字典形式展示的服務(wù)器響應(yīng)頭:
>>> r.headers
{
'content-encoding': 'gzip',
'transfer-encoding': 'chunked',
'connection': 'close',
'server': 'nginx/1.0.4',
'x-runtime': '148ms',
'etag': '"e1ca502697e5c9317743dc078f67693f"',
'content-type': 'application/json'
}
但是這個(gè)字典比較特殊:它是僅為 HTTP 頭部而生的。根據(jù) RFC 2616, HTTP 頭部是大小寫不敏感的。
因此,我們可以使用任意大寫形式來(lái)訪問(wèn)這些響應(yīng)頭字段:
>>> r.headers['Content-Type']
'application/json'
>>> r.headers.get('content-type')
'application/json'
它還有一個(gè)特殊點(diǎn),那就是服務(wù)器可以多次接受同一 header,每次都使用不同的值。但 Requests 會(huì)將它們合并,這樣它們就可以用一個(gè)映射來(lái)表示出來(lái),參見 RFC 7230:
A recipient MAY combine multiple header fields with the same field name into one "field-name: field-value" pair, without changing the semantics of the message, by appending each subsequent field value to the combined field value in order, separated by a comma.
譯文:接收者可以合并多個(gè)相同名稱的 header 欄位,把它們合為一個(gè) "field-name: field-value" 配對(duì),將每個(gè)后續(xù)的欄位值依次追加到合并的欄位值中,用逗號(hào)隔開即可,這樣做不會(huì)改變信息的語(yǔ)義。
更多建議: