原文
Request 對象
Request構造器方法的參數列表:
Request(url [, callback=None, method='GET', headers=None, body=None,cookies=None, meta=None, encoding='utf-8', priority=0,dont_filter=False, errback=None, flags=None])
各參數說明:
url(必選)
請求頁面的url地址,bytes或str類型。
callback
頁面解析函數,Callback類型,Request請求對象的頁面下載完成後,由該參數指定的頁面解析函數解析頁面,如果未傳遞該參數,默認調用Spider的parse方法。
method
HTTP請求的方法,默認爲‘GET’。
headers
HTTP請求的頭部字典,dict 類型。
body
HTTP請求的正文,bytes 或 str類型。
cookies
Cookie信息字典,dict 類型。
meta
Request 的元數據字典,dict 類型,用於給框架中其他組件傳遞信息,比如中間件 Item Pipeline。其他組件可以使用Request 對象的 meta 屬性訪問該元數據字典 (request.meta), 也用於給響應處理函數傳遞信息。
encoding
url 和 body 參數的編碼默認爲'utf-8'。如果傳入的url或body參數是str 類型,就使用該參數進行編碼。
priority
請求的優先級,默認值爲0,優先級高的請求優先下載。
dont_filter
默認情況下(dont_filter=False),對同一個url地址多次提交下載請求,後面的請求會被去重過濾器過濾(避免重複下載)。如果將該參數置爲True,可以使請求避免被過濾,強制下載。例如:在多次爬取一個內容隨時間而變化的頁面時(每次使用相同的url),可以將該參數設置爲True。
errback
請求出現異常或出現HTTP錯誤時(如404頁面不存在)的回調函數。
Response 對象
概念:
Response 對象用來描述一個HTTP響應,Response只是一個基類,根據響應內容的不同有如下子類:
TextResponse
HtmlResponse
XmlResponse
當一個頁面下載完成時,下載器依據HTTP響應頭部中的Content-Type信息創建某個Response的子類對象。通常一般是HtmlResponse子類。
HtmlResponse 對象的屬性及方法:
url
HTTP 響應的url地址,str 類型。
status
HTTP 響應的狀態碼,int 類型。
headers
HTTP 響應的頭部,dict 類型。可以調用get或getlist方法對其進行訪問。
body
HTTP 響應正文,bytes 類型。
text
文本形式的HTTP響應正文,str 類型,它是由 response.body 使用 response.encoding 解碼得到的。
response.text = response.body.decode(response.encoding)
encoding
HTTP 響應正文的編碼,它的值可能是從HTTP響應頭部或正文中解析出來的。
request
產生該HTTP 響應的Request對象。
meta
即 response.request.meta, 在構造 Request對象時,可將要傳遞給響應處理函數的信息通過meta參數傳入;響應處理函數處理響應時,通過response.meta 將信息取出。
selector
Selector 對象用於在Response 中提取數據。
xpath(query)
使用XPath選擇器在Response中提取數據;它是 response.selector.xpath 方法的快捷方式。
css(query)
使用 CSS選擇器在Response中提取數據;它是 response.selector.css方法的快捷方式。
urljoin (url)
用於構造絕對 url 。當傳入的url參數是一個相對地址時,根據response.url 計算出相應的絕對 url。