2024-05-18 08:35:02 发布
网友
我想用scrapy设置自定义UserAgentMiddleware。但是当我看到request.headers.setdefault('User-Agent', ua)时,我不知道它的作用,也没有找到scrapy和requests文档的方法。在
UserAgentMiddleware
request.headers.setdefault('User-Agent', ua)
我在哪能找到解释呢?在
headers是一个普通字典,因此setdefault将是一种为该字典设置值的方法,如果该字典中不存在该值。在
headers
setdefault
解释是,只有在spider进程中还没有设置用户代理时,中间件才会通过defaut来设置用户代理。在
您可以在spider代码中设置如下内容:
... request.headers['User-Agent'] = 'My Custom User Agent' yield request
这意味着当代码到达中间件时,用户代理不会被覆盖或更改。在
在此之前的其他中间件(或任何其他进程)也可以修改User-Agent,并且它不会被此代码更改,因为它尊重先前设置的那些。在
User-Agent
headers
是一个普通字典,因此setdefault
将是一种为该字典设置值的方法,如果该字典中不存在该值。在解释是,只有在spider进程中还没有设置用户代理时,中间件才会通过defaut来设置用户代理。在
您可以在spider代码中设置如下内容:
这意味着当代码到达中间件时,用户代理不会被覆盖或更改。在
在此之前的其他中间件(或任何其他进程)也可以修改
User-Agent
,并且它不会被此代码更改,因为它尊重先前设置的那些。在相关问题 更多 >
编程相关推荐