问题
使用 Scrapy 的过程当中 ,我想要实现一个功能 :
每个请求使用随机的 User-Agent 。
错误方案
习惯性的随手 Google , 找了篇博客 , copy 了方案 , 发现设置的 User-Agent 无效。代码如下 :
class CustomerUserAgent(UserAgentMiddleware):
def process_request(self, request, spider):
ua = random.choice(self.user_agent_list)
request.headers.setdefault('User-Agent', ua)
user_agent_list = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
]
同时在 settings.py 中设置了 User-Agent 的优先级
DOWNLOADER_MIDDLEWARES = {
'spider.middlewares.CustomerUserAgent': 543,
}