web-dev-qa-db-ja.com

Pythonのリクエストで応答の生のコンテンツを取得するにはどうすればよいですか?

PythonでrequestsのHTTP応答コンテンツの生データを取得しようとしています。別のチャネルを介して応答を転送することに興味があります。つまり、理想的には、コンテンツは可能な限り元の状態である必要があります。

これを行うための良い方法は何でしょうか?

18

requests.get呼び出しを使用してHTTP応答を取得している場合は、応答のraw属性を使用できます。 requests docs のコードは次のとおりです。

>>> r = requests.get('https://github.com/timeline.json', stream=True)
>>> r.raw
<requests.packages.urllib3.response.HTTPResponse object at 0x101194810>
>>> r.raw.read(10)
'\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\x03'
17
Brien

requests.get()の後、r.contentを使用して、未加工のByteタイプのコンテンツを抽出できます。

r = requests.get('https://yourweb.com', stream=True)
r.content
11
Tom