乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Scrapy的Request和Response詳解

       小豬窩969 2019-01-03

      介紹Scrapy框架的request對象和response對象

      通常,Request對象在爬蟲程序中生成并傳遞到系統(tǒng),直到它們到達下載程序,后者執(zhí)行請求并返回一個Response對象,該對象返回到發(fā)出請求的爬蟲程序

      Request類和Response類都有一些子類,子類用來添加基類中不必要的功能。這些在下面的請求子類和響應子類中描述 

      Request對象

      一個Request對象表示一個HTTP請求,它通常是在爬蟲中生成,并由下載器執(zhí)行,從而返回Response

      基礎參數(shù) :

      url——請求的url

      callback——請求回來的reseponse處理函數(shù),也叫回調函數(shù)

      meta——用來在“頁面”之間傳遞數(shù)據(jù)

      • meta是一個dict,主要用來在解析函數(shù)之間傳遞值
      • 比如:在parse() 給item某些字段提取了值,并且提取出了一個新的URL,item另外一些字段需要在這個新的URL的response里面提取,為此定義一個parse_item()解析函數(shù)用于處理這個response。在用request發(fā)送這個新的URL請求的時候,使用parse_item()作為回調函數(shù),并使用meta傳遞原來已經(jīng)提取的item字段給parse_item()里的response
      • Request對象接受一個meta參數(shù),一個字典對象,同時Response對象有一個meta屬性可以取到相應request傳過來的meta
      • 一旦此參數(shù)被設置, 通過參數(shù)傳遞的字典將會被淺拷貝

      headers——頁面的headers數(shù)據(jù)

      cookies——設置頁面的cookies

      基礎高級參數(shù)

      encoding——請求的轉換編碼

      priority——鏈接優(yōu)先級

      • 優(yōu)先級越高,越優(yōu)先爬取,但不可以序列化
      • 序列化 (Serialization):將對象的狀態(tài)信息轉換為可以存儲或傳輸?shù)男问降倪^程。在序列化期間,對象將其當前狀態(tài)寫入到臨時或持久性存儲區(qū)。以后,可以通過從存儲區(qū)中讀取或反序列化對象的狀態(tài),重新創(chuàng)建該對象

      dont_filter——強制不過濾 
      scrapy會對request的URL去重,加上dont_filter則告訴它這個URL不參與去重

      errback——錯誤回掉 
      errback更適合用于檢查記錄請求產生的錯誤,但是不適合請求的重試

      Request對象方法

      copy():復制一個一模一樣的對象 
      replace():對對象參數(shù)進行替換

      Request.meta 一些特殊的keys

      • dont_redirect:如果 Request.meta 包含 dont_redirect 鍵,則該request將會被RedirectMiddleware忽略
      • dont_retry:如果 Request.meta 包含 dont_retry 鍵, 該request將會被RetryMiddleware忽略
      • handle_httpstatus_list:Request.meta 中的 handle_httpstatus_list 鍵可以用來指定每個request所允許的response code
      • handle_httpstatus_all:handle_httpstatus_all為True ,可以允許請求的任何響應代碼
      • dont_merge_cookies:Request.meta 中的dont_merge_cookies設為TRUE,可以避免與現(xiàn)有cookie合并
      • cookiejar:Scrapy通過使用 Request.meta中的cookiejar 來支持單spider追蹤多cookie session。 默認情況下其使用一個cookie jar(session),不過可以傳遞一個標示符來使用多個
      • dont_cache:可以避免使用dont_cache元鍵等于True緩存每個策略的響應
      • redirect_urls:通過該中間件的(被重定向的)request的url可以通過 Request.meta 的 redirect_urls 鍵找到
      • bindaddress:用于執(zhí)行請求的傳出IP地址的IP
      • dont_obey_robotstxt:如果Request.meta將dont_obey_robotstxt鍵設置為True,則即使啟用ROBOTSTXT_OBEY,RobotsTxtMiddleware也會忽略該請求
      • download_timeout:下載器在超時之前等待的時間(以秒為單位)
      • download_maxsize:爬取URL的最大長度
      • download_latency:自請求已經(jīng)開始,即通過網(wǎng)絡發(fā)送的HTTP消息,用于獲取響應的時間量 
        該元密鑰僅在下載響應時才可用。雖然大多數(shù)其他元鍵用于控制Scrapy行為,但是這個應用程序應該是只讀的
      • download_fail_on_dataloss:是否在故障響應失敗
      • proxy:可以將代理每個請求設置為像http:// some_proxy_server:port這樣的值
      • ftp_user :用于FTP連接的用戶名
      • ftp_password :用于FTP連接的密碼
      • referrer_policy:為每個請求設置referrer_policy
      • max_retry_times:用于每個請求的重試次數(shù)。初始化時,max_retry_times元鍵比RETRY_TIMES設置更高優(yōu)先級


      Response對象

      基礎參數(shù)

      url——請求的url 
      body——請求回來的html 
      meta——用來在“頁面”之間傳遞數(shù)據(jù) 
      headers——頁面的headers數(shù)據(jù) 
      cookies——設置頁面的cookies 
      Request——發(fā)出這個response的request對象

      Response對象方法

      copy():同request 
      replace():同request 
      urljoin():由于將頁面相對路徑改為絕對路徑 
      follow():對相對路徑進行自動補全

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多