情况一:设置默认USER_AGENT ,不开启DOWNLOADER_MIDDLEWARES
结果默认使用USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1"代理
情况二:开启DOWNLOADER_MIDDLEWARES,使用自定义RandomUserAgentMiddleware,数值为1000。
结果默认使用USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1"代理
原因:DOWNLOADER_MIDDLEWARES_BASE 与DOWNLOADER_MIDDLEWARES混用时,谁数值越小,谁优先执行
(1000时稳定使用USER_AGENT = "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.2pre) Gecko/20070215 K-Ninja/2.1.1"代理,但401之类比较接近的数值,会使用随机代理,原因不明,以后探究)
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': 400
优先执行顺序大于
'ImgCrawler.middlewares.RandomUserAgentMiddleware': 1000,
正确情况:
settings设置:
middlewares设置:
spider测试: