首先最简单的方法就是通过重写spider中的start_requests方法:
def start_requests(self): for url in self.start_urls: yield scrapy.Request(url, headers={'accept-language': 'zh-CN,zh;q=0.9,ja;q=0.8,', 'cache-control': 'max-age=0,', # 'upgrade-insecure-requests': '1', # 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36' })
还有一种更加直接的方法就是通过中间件的形式,
由于scrapy的架构问题,所有的请求url都会通过downloader来进行下载,那么在downloader之间加上一个中间件,在请求的时候就可以保证添加上了headers;具体看:https://mp.csdn.net/postedit/86219663