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頁面不存在)的回調函數。
- url(必選)
Response 對象
- 概念:
- Response 對象用來描述一個HTTP響應,Response只是一個基類,根據響應內容的不同有如下子類:
- TextResponse
- HtmlResponse
- XmlResponse
- 當一個頁面下載完成時,下載器依據HTTP響應頭部中的Content-Type信息創建某個Response的子類對象。通常一般是HtmlResponse子類。
- Response 對象用來描述一個HTTP響應,Response只是一個基類,根據響應內容的不同有如下子類:
- 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)
- 文本形式的HTTP響應正文,str 類型,它是由 response.body 使用 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。
- url