我想用scrapy设置自定义UserAgentMiddleware
。但是当我看到它时,我不知道request.headers.setdefault('User-Agent', ua)
的行为,而且我没有找到scrapy和请求文件的方法。
我在哪里可以找到有关它的任何解释?
答案 0 :(得分:4)
headers
是一个普通字典,因此setdefault
是一种为该字典设置值的方法如果该值
解释是,只有在您没有在蜘蛛流程上设置一个用户代理时,中间件才会设置用户代理 。
您可以在蜘蛛代码中设置类似的内容:
...
request.headers['User-Agent'] = 'My Custom User Agent'
yield request
意味着当该代码到达中间件时,用户代理不会被覆盖或更改。
在此之前的其他中间件(或任何其他进程)也可以修改User-Agent
,并且它不会被此代码更改,因为它尊重先前设置的那些。 / p>