我如何查看/获取不可靠的POST / GET请求标头

C4t*_*4t4 3 python scrapy web-scraping

我想知道当scrapy在实时日志,shell或任何其他类似方式中发出POST / GET请求时,是否有任何方法可以查看正在发送的标头。谢谢!

Rej*_*ted 7

扩展eLRuLL编写的内容。

无论ResponseRequest对象将通过提供其标题.headers属性。

通过下载器和引擎之间的中间件可以修改两个对象的标题(请参见Scrapy Architecture)。如果创建一个新Request对象,则在将其传递给分配对象的中间件之前,它将没有任何标题。

要查看将被发送出去的请求对象,您需要创建一个中间件,将其放置在Downloader之上,而不是任何其他更改标题的中间件,然后检查该request.headers属性。

或者,您可以通过查看来签出返回Response给Spider 的请求的标头response.request.headers。不过,这可能不是Request您发出的对象,而是导致Response返回的对象的对象(例如,重定向/重试导致最初分派的Request对象与中的Request对象不同response.request)。当然,这需要将Response对象返回给Spider,因此,对于任何Request未生成响应的对象(例如DNS查找错误)Response或通过中间件被忽略或丢弃的任何对象(例如。 HTTP状态400)。


eLR*_*uLL -2

当您发出请求时,您可以通过回调方法捕获它,回调应该如下所示:

def parse_method(self, response):
Run Code Online (Sandbox Code Playgroud)

在那里你可以检查响应头response.headers

  • 这个解决方案是错误的,因为 OP 要求提供请求标头 (2认同)