scrapy如何通过中间件设置User-Agent?

主要问题在中间件的request方法,网上都是使用process_request,我用了后根本没效果,没有调用,然后看官方文档,发现中间件方法改成了process_start_requests,我试了下确实可以调用,可是设置UA时会报错,说request没有headers属性,这是为什么?

class RandomAgentMiddleware(UserAgentMiddleware):

    def process_start_requests(self, request, spider):
        request.headers.setdefault('User-Agent', xxx)
阅读 5.5k
4 个回答

在setting.py里加入

USER_AGENT = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_3) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.54 Safari/536.5'

项目的setting.py中有USER_AGENT参数的设置, 默认是被注释的

clipboard.png
注释去掉,然后自己设置参数

自定义请求头时候要在setting里面添加自定义的中间件,同时禁用原有的请求头中间件,不然没用

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题