scrapy中request.headers.setdefault()的含义是什么?

问题描述 投票:1回答:1

我想用scrapy设置自定义UserAgentMiddleware。但是当我看到它时,我不知道request.headers.setdefault('User-Agent', ua)的行为,而且我没有找到scrapy和请求文件的方法。

我在哪里可以找到有关它的任何解释?

python scrapy python-requests
1个回答
4
投票

headers是一个普通的字典,所以setdefault将是一种为该字典设置值的方法,如果该值已经存在。

解释是,只有在您没有在蜘蛛进程上设置一个用户代理时,中间件才会默认设置用户代理。

你可以在你的蜘蛛代码中设置这样的东西:

...
request.headers['User-Agent'] = 'My Custom User Agent'
yield request

意味着当该代码到达中间件时,不会覆盖或更改用户代理。

在此之前的其他中间件(或任何其他过程)也可以修改User-Agent,并且不会被此代码更改,因为它尊重先前设置的那些。

© www.soinside.com 2019 - 2024. All rights reserved.