我正在使用CrawlSpider类来抓取网站,我想修改每个请求中发送的标头。具体而言,我想在请求中添加引用者。如何将标题添加到Scrapy CrawlSpider请求?
作为每this question,我在响应解析功能检查
response.request.headers.get('Referer', None)
和Referer
头不存在。我认为这意味着Referer没有被提交请求(除非网站没有返回它,我不确定)。
我一直无法弄清楚如何修改请求的标题。同样,我的蜘蛛来自CrawlSpider。覆盖CrawlSpider的_requests_to_follow
或为规则指定process_request
回调将不起作用,因为引用者不在这些时间范围内。
有谁知道如何动态修改请求标头?
默认情况下,在BASE_Settings中RefererMiddleware处于活动状态,因此无需在蜘蛛设置中激活它们。 –
@akhterwahab嗯。在将我的项目设置添加到以前未修改过的项目设置中之前,我的请求标题中没有提供查阅者。我确实看到该设置的默认值为true。尽管如此,他们并没有为我工作。 – CatShoes
btw:response.request.headers.get('Referer',None)是正确的用法。 “推荐人”不会给出正确的结果。 – BgRva