如何提升scrapy爬取數據的效率


在配置文件中修改相關參數:

  • 增加並發
    • 默認的scrapy開啟的並發線程為32個,可以適當的進行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值為100,並發設置成了為100。
  • 降低日志等級
    • 在scrapy運行的時候,會輸出大量的日志信息,為了減少cpu的使用率,可以設置log輸出信息為INFO或者ERROR.在配置文件中編寫LOG_LEVEL = 'INFO'
  • 禁止cookie
    • 如果不是真的需要cookie,則在scrapy爬取數據的時候可以 禁止cookie從而減少CPU的使用率,提升爬蟲效率,在配置文件中編寫COOKIES_ENABLED= False
  • 禁止重試
    • 對失敗的HTTP請求進行重新請求(重試),會減慢爬取速度。因此可以禁止重試,在配置文件中編寫:RETRY_ENABLED = False
  • 減少下載超時
    • 如果對一個非常慢的鏈接進行爬取,減少下載超時可以讓卡住的鏈接被快速放棄,從而提升爬取的效率。在配置文件中進行編寫:DOWNLOAD_TIMEOUT = 10 超時時間為10s

【補充】:

請求傳參的的應用場景:

  解析的數據不在同一個頁面中

  Request(callback,meta={})

下載中間件的用途:

  批量攔截請求(代理IP和UA)和響應(處理頁面數據)

如何在scrapy使用selenium
  1.在spider的init方法中實例化一個瀏覽器對象
  2.在spider的closed方法中關閉瀏覽器對象
  3.在下載中間件類的process_response方法中接收spider中的瀏覽器對象
  4.處理執行相關自動化操作(發起請求,獲取頁面數據)
  5.實例化一個新的響應對象(from scrapy.http import HtmlResponse),且將頁面數據存儲到該對象中
  6.返回新的響應對象
  7.在配置文件中開啟中間件


免責聲明!

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



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