Получить первые n байтов из URL - PullRequest
4 голосов
/ 30 октября 2011

Возможно ли получить только несколько байтов с какого-либо URL, а затем закрыть соединение с urllib / urllib2? Или даже может быть часть из n-го байта в k-й? На этой стороне есть страница, и мне не нужно загружать всю страницу, только ее часть.

1 Ответ

6 голосов
/ 30 октября 2011

Вы можете установить заголовок Range для запроса определенного диапазона байтов, но вы зависите от сервера, чтобы удовлетворить запрос:

import urllib2
req = urllib2.Request('http://www.python.org/')
#
# Here we request that bytes 18000--19000 be downloaded.
# The range is inclusive, and starts at 0.
#
req.headers['Range']='bytes=%s-%s' % (18000, 19000)
f = urllib2.urlopen(req)
# This shows you the actual bytes that have been downloaded.
content_range=f.headers.get('Content-Range')
print(content_range)
# bytes 18000-18030/18031
...