如何将头添加到Scrapy CrawlSpider请求?
问题内容:
我正在使用CrawlSpider类来爬网网站,并且我想修改每个请求中发送的标头。具体来说,我想将引荐添加到请求中。
根据这个问题,我检查了
response.request.headers.get('Referer', None)
在我的响应解析函数中,并且Referer
标题不存在。我认为这意味着没有在请求中提交引荐来源网址(除非网站未返回请求,我不确定)。
我一直无法弄清楚如何修改请求的标头。同样,我的蜘蛛是从CrawlSpider派生的。覆盖CrawlSpider的值_requests_to_follow
或process_request
为规则指定回调将不起作用,因为此时引用者不在范围内。
有人知道如何动态修改请求标头吗?
问题答案:
可以使用参数REFERER手动传递给每个请求headers
:
yield Request(parse=..., headers={'referer':...})
RefererMiddleware 做同样的事情,自动从先前的响应中获取引用网址。