Scrapy 中 Request 對象和 Response 對象的各參數及屬性介紹


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。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM