主要问题在中间件的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)
在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'