2024-09-30 08:24:26 发布
网友
我想知道当scray在livelogs、shell或其他类似的方式发出POST/GET请求时,是否有任何方法可以查看发送的头。谢谢!在
当您发出请求时,通过回调方法捕捉它,回调应该如下所示:
def parse_method(self, response):
在那里,您可以使用response.headers检查响应头
response.headers
扩展eLRuLL写的东西。在
Response和{}对象的头都可以通过.headers属性使用。在
Response
.headers
两个对象的头都是通过下载器和引擎之间的中间件修改的(请参见Scrapy Architecture)。如果您创建了一个新的Request对象,它在通过分配它们的中间件之前不会有任何头。在
Request
要查看请求对象,因为它将被发送出去,您将需要创建一个中间件,将它放在比任何其他改变头的中间件更靠近下载程序的地方,然后检查request.headers属性。在
request.headers
或者,您可以通过查看response.request.headers来检查向Spider返回Response的请求的头。这可能不是您发送的Request对象,而是导致返回的Response对象的对象(例如,重定向/重试导致最初调度的Request对象与response.request中的Request对象不同)。当然,这需要一个Response对象被返回给spider,因此对于没有生成响应的Request或任何通过中间件被忽略或丢弃的{}都不起作用(例如HTTP状态400)。在
response.request.headers
response.request
当您发出请求时,通过回调方法捕捉它,回调应该如下所示:
在那里,您可以使用
response.headers
检查响应头扩展eLRuLL写的东西。在
Response
和{.headers
属性使用。在两个对象的头都是通过下载器和引擎之间的中间件修改的(请参见Scrapy Architecture)。如果您创建了一个新的
Request
对象,它在通过分配它们的中间件之前不会有任何头。在要查看请求对象,因为它将被发送出去,您将需要创建一个中间件,将它放在比任何其他改变头的中间件更靠近下载程序的地方,然后检查
request.headers
属性。在或者,您可以通过查看}都不起作用(例如HTTP状态400)。在
response.request.headers
来检查向Spider返回Response
的请求的头。这可能不是您发送的Request
对象,而是导致返回的Response
对象的对象(例如,重定向/重试导致最初调度的Request
对象与response.request
中的Request
对象不同)。当然,这需要一个Response
对象被返回给spider,因此对于没有生成响应的Request
或任何通过中间件被忽略或丢弃的{相关问题 更多 >
编程相关推荐