Python请求:无论如何只下载get响应的主体?

时间:2015-08-14 06:47:26

标签: python python-requests

所以我首先使用requests.head()来下载标题。我做了一些验证(检查状态代码,检查内容类型),如果这是好的我下载正文。但是我使用的是requests.get(),但是使用.get()不仅会下载正文,还会下载我刚下载的标题。所以我不需要两次下载标题,无论如何,如果标题看起来不错,我可以下载获取响应的正文吗?

3 个答案:

答案 0 :(得分:1)

不,没有办法。 HTTP具有HEAD请求,该请求仅获取标题,但是没有请求仅获取正文。

在您需要之前,不要过分担心效率;无论如何,标题通常不会太大。如果正文较小,则首先使用requests.get();如果需要,可以使用requests.head()后跟requests.get()

答案 1 :(得分:0)

你不能!这不是 HTTP 的工作方式。如果您想要使用较少的流量,那么您所需要的就是执行head请求,然后检查您是否想要获取正文。如果是,请使用get

下载 HTTP标头两次不会花费您(很多)性能或流量,这是必要的。

答案 2 :(得分:0)

在404或302的情况下只询问标题是没有意义的。你得到的错误和成本与直接询问身体相同,或者你没有得到错误,需要第二次请求身体。

因此,除非身体非常大,否则我会直接要求身体提出一个请求。如果它很大,但是在分块模式下传输,你可以读取带有第一个块的头,如果内容类型错误,则中止transfert。

HTTP HEAD请求没有共同的用法,你描述的内容看起来并不像。它们通常仅在您只需要标题时使用,并且永远不会使用正文。