2017-09-06 5 views
1

は、私は、ファイルのバイトの範囲のみをダウンロードしようとしていると私は、次のような処理をしようとしています:pythonを使用して完全なファイルの代わりに範囲のバイトを正常にダウンロードするには?

r = requests.get('https://stackoverflow.com', headers={'Range':'bytes=0-999'})

をしかし、206とは対照的に、それはステータスコード200を与えると私はファイル全体を取得しています。

私はこのPython: How to download file using range of bytes?に従ってみましたが、ステータスコード200も与えました。理由は何ですか?また、ファイルを部分的にPythonでダウンロードするにはどうすればいいですか? stackoverflowのため

ヘッダ:

HTTP/1.1 200 OK 
Content-Type: text/html; charset=utf-8 
Last-Modified: Fri, 04 Aug 2017 05:28:29 GMT 
X-Frame-Options: SAMEORIGIN 
X-Request-Guid: 86fd186e-b5ac-472f-9d79-c45149343776 
Strict-Transport-Security: max-age=15552000 
Content-Length: 107699 
Accept-Ranges: bytes 
Date: Wed, 06 Sep 2017 11:48:16 GMT 
Via: 1.1 varnish 
Age: 0 
Connection: keep-alive 
X-Served-By: cache-sin18023-SIN 
X-Cache: MISS 
X-Cache-Hits: 0 
X-Timer: S1504698496.659820,VS0,VE404 
Vary: Fastly-SSL 
X-DNS-Prefetch-Control: off 
Set-Cookie: prov=6df82a45-2405-b1dd-1430-99e27827b360; domain=.stackoverflow.com; expires=Fri, 01-Jan-2055 00:00:00 GMT; path=/; HttpOnly 
Cache-Control: private 

答えて

2

これは、サーバー側のサポートが必要です。サーバはそれをサポートしていない可能性があります。

HEADリクエストを作成し、応答にAccept-Rangesが含まれているかどうかを確認します。

+0

ヘッダーにはAccept-Ranges:バイトが表示され、https://tools.ietf.org/html/rfc2616#section-14.5によれば部分的なダウンロードがサポートされていることを意味します – Krash

+0

実際のURLは何ですかを使用して? –

+0

@johnZwink、彼のポストのスタックオーバーフロー。 – LhasaDad

関連する問題