下載中間件 簡介 下載器,無法執(zhí)行js代碼,本身不支持代理 下載中間件用來hooks進(jìn)Scrapy的request/response處理過程的框架,一個輕量級的底層系統(tǒng),用來全局修改scrapy的request和response scrapy框架中的下載中間件,是實(shí)現(xiàn)了特殊方法的類,scrapy系統(tǒng)自帶的中間件被放在DOWNLOADER_MIDDLEWARES_BASE設(shè)置中 用戶自定義的中間件需要在DOWNLOADER_MIDDLEWARES中進(jìn)行設(shè)置,該設(shè)置是一個dict,鍵是中間件類路徑,值是中間件的順序,是一個正整數(shù)0-1000.python基礎(chǔ)教程越小越靠近引擎 API 每個中間件都是Python的一個類,它定義了以下一個或多個方法 process_request(request,spider) 處理請求,對于通過中間件的每個請求調(diào)用此方法 process_response(request, response, spider) 處理響應(yīng),對于通過中間件的每個響應(yīng),調(diào)用此方法 process_exception(request, exception, spider) 處理請求時發(fā)生了異常調(diào)用 from_crawler(cls,crawler ) 常用內(nèi)置中間件 CookieMiddleware 支持cookie,通過設(shè)置COOKIES_ENABLED 來開啟和關(guān)閉 HttpProxyMiddleware HTTP代理,通過設(shè)置request.meta['proxy']的值來設(shè)置 UserAgentMiddleware 與用戶代理中間件 其它中間件參見官方文檔:https://docs./en/latest/topics/downloader-middleware.html 常用設(shè)置 設(shè)置的優(yōu)先級 命令行選項(xiàng)(優(yōu)先級最高) 設(shè)置per-spider 項(xiàng)目設(shè)置模塊 各命令默認(rèn)設(shè)置 默認(rèn)全局設(shè)置(低優(yōu)先級) 常用項(xiàng)目設(shè)置 BOT_NAME 項(xiàng)目名稱 CONCURRENT_ITEMS item 處理最大并發(fā)數(shù),默認(rèn)100 CONCURRENT_REQUESTS 下載最大并發(fā)數(shù) CONCURRENT_REQUESTS_PER_DOMAIN 單個域名最大并發(fā)數(shù) CONCURRENT_REQUESTS_PER_IP 單個ip最大并發(fā)數(shù) |
|