Я пытаюсь загрузить zip-файлы размером от 7 до 30 МБ.Иногда через него проходит 4 или 5 файлов, но здесь недавно я не могу загрузить даже 1 файл.Мой скрипт не выдает ошибку, соединение просто перестает получать данные.После проверки связи с исходным веб-сайтом и просмотра моего сетевого монитора загрузка, по-видимому, останавливается именно на пинге, где «истекло время ожидания запроса».
Я пробовал urllib2, urllib и httplib2.
Сurllib2 Я пробовал:
remoteFile = urllib2.urlopen(url)
content = remoteFile.read()
remoteFile.close()
f = open(fpath, 'wb')
f.write(content)
f.close()
и
req = Request(url)
# Open the url
f = urlopen(req)
# Open our local file for writing
local_file = open(fpath, "wb")
#Write to our local file
local_file.write(f.read())
local_file.close()
С urllib:
f = urllib.urlopen(url)
# Open our local file for writing
local_file = open(fpath, "wb")
#Write to our local file
local_file.write(f.read())
local_file.close()
С httplib2:
h = httplib2.Http(".cache")
resp, content = h.request(url, "GET")
f = open(fpath, 'wb')
f.write(content)
f.close()
Я дажепопытался загрузить чанками:
req = urllib2.urlopen(url)
downloaded = 0
CHUNK = 256 * 10240
with open(file, 'wb') as fp:
while True:
chunk = req.read(CHUNK)
downloaded += len(chunk)
print str(downloaded/1000000.0) + 'Mb'
if not chunk: break
fp.write(chunk)
, но он остановился после 3-го чанка из-за отсутствующего пакета.Я пробовал это на небольших загрузках с других сайтов, поэтому я знаю, что я их правильно кодирую.Опять же, это никогда не выдает ошибку.Модуль Python не закрывается очень долго, 20 минут или дольше, когда закрывается соединение.
Мне наконец пришлось сдаться и просто написать на C #.До сих пор у меня не было проблем.Питон не обрабатывает потерю пакетов?