web-dev-qa-db-ja.com

HEAD content with Python Requests

HEADリクエストがPython Requests ライブラリを使用して実行された)の結果を解析しようとしていますが、応答コンテンツにアクセスします。

docs によると、requests.Response.textからコンテンツにアクセスできるはずです。これはGETリクエストでは問題なく機能しますが、HEADリクエストではNoneを返します。

GETリクエスト(動作)

import requests
response = requests.get(url)
content = response.text

コンテンツ= <html>...</html>

HEADリクエスト(コンテンツなし)

import requests
response = requests.head(url)
content = response.text

content = None


[〜#〜]編集[〜#〜]

OK私は答えから、HEADリクエストはコンテンツのみのヘッダーを返すことは想定されていません。しかし、それは<head>タグで見つかったものにアクセスすることを意味します。 <link>タグや<meta>タグのようなページの場合、ドキュメント全体を取得する必要がありますか?

19
Yarin

definition までに、HEADリクエストへの応答には、メッセージ本文が含まれていません。

応答本文を取得したい場合は、GETリクエストを送信してください。 HEAD request iff あなたは応答ステータスコードとヘッダーだけに興味があります。

HTTPは任意のコンテンツを転送します。 HTTP用語headerはHTMLとは完全に無関係です<head>。ただし、HTTPは、ドキュメントの一部のみをダウンロードするようにアドバイスできます。 HTMLの長さがわかっている場合<head>コード(またはその上限)では、リクエストに HTTP Range ヘッダーを含めて、リモートサーバーに特定のバイト数のみを返すようにアドバイスできます。リモートサーバーがHTTP範囲をサポートしている場合は、縮小された回答を提供します。

23
phihag

A HEADにはコンテンツがありません!response.headersを試してください-おそらくアクションが行われる場所です。HTTPHEADリクエストはGETリクエストから取得するHTML応答の<head>要素。それはあなたの間違いだと思います。

8
Spacedman

HEAD応答には本体がありません。 GETリクエストを使用した場合と同じように、HTTPヘッダーのみを返します。

2
Dor Shemer