上一節(jié)我們給大家介紹了Python爬蟲庫requests響應狀態(tài)碼,今天為大家介紹下Requests 響應頭相關內(nèi)容。
我們可以查看以一個 Python 字典形式展示的服務器響應頭:
>>> r.headers
{
'content-encoding': 'gzip',
'transfer-encoding': 'chunked',
'connection': 'close',
'server': 'nginx/1.0.4',
'x-runtime': '148ms',
'etag': '"e1ca502697e5c9317743dc078f67693f"',
'content-type': 'application/json'
}
但是這個字典比較特殊:它是僅為 HTTP 頭部而生的。根據(jù) RFC 2616, HTTP 頭部是大小寫不敏感的。
因此,我們可以使用任意大寫形式來訪問這些響應頭字段:
>>> r.headers['Content-Type']
'application/json'
>>> r.headers.get('content-type')
'application/json'
它還有一個特殊點,那就是服務器可以多次接受同一 header,每次都使用不同的值。但 Requests 會將它們合并,這樣它們就可以用一個映射來表示出來,參見 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.
譯文:接收者可以合并多個相同名稱的 header 欄位,把它們合為一個 "field-name: field-value" 配對,將每個后續(xù)的欄位值依次追加到合并的欄位值中,用逗號隔開即可,這樣做不會改變信息的語義。
更多建議: