下載中間件html
簡介cookie
下載器,沒法執行js代碼,自己不支持代理併發
下載中間件用來hooks進Scrapy的request/response處理過程的框架,一個輕量級的底層系統,用來全局修改scrapy的request和response框架
scrapy框架中的下載中間件,是實現了特殊方法的類,scrapy系統自帶的中間件被放在DOWNLOADER_MIDDLEWARES_BASE設置中scrapy
用戶自定義的中間件須要在DOWNLOADER_MIDDLEWARES中進行設置,該設置是一個dict,鍵是中間件類路徑,值是中間件的順序,是一個正整數0-1000.越小越靠近引擎ide
APIspa
每一箇中間件都是Python的一個類,它定義瞭如下一個或多個方法命令行
process_request(request,spider) 處理請求,對於經過中間件的每一個請求調用此方法代理
process_response(request, response, spider) 處理響應,對於經過中間件的每一個響應,調用此方法htm
process_exception(request, exception, spider) 處理請求時發生了異常調用
from_crawler(cls,crawler )
經常使用內置中間件
CookieMiddleware 支持cookie,經過設置COOKIES_ENABLED 來開啓和關閉
HttpProxyMiddleware HTTP代理,經過設置request.meta['proxy']的值來設置
UserAgentMiddleware 與用戶代理中間件
其它中間件參見官方文檔:https://docs.scrapy.org/en/latest/topics/downloader-middleware.html
經常使用設置
設置的優先級
命令行選項(優先級最高)
設置per-spider
項目設置模塊
各命令默認設置
默認全局設置(低優先級)
經常使用項目設置
BOT_NAME 項目名稱
CONCURRENT_ITEMS item 處理最大併發數,默認100
CONCURRENT_REQUESTS 下載最大併發數
CONCURRENT_REQUESTS_PER_DOMAIN 單個域名最大併發數
CONCURRENT_REQUESTS_PER_IP 單個ip最大併發數