Отборочные
Чтобы все это работало, сервер должен поддерживать запросы диапазона, на которые он будет отвечать 206 Partial Content
. Судя по выводу вашего терминала, рассматриваемый сервер имеет поддержку.
Ваши вопросы
Однако сервер закрывает мое соединение каждые несколько секунд, позволяя мне загружать только 50-90 МБ файла на моей скорости соединения. Я поменялся IP-адресами тоже, но получаю такое же поведение. Это также случается для всех остальных?
Нет, загрузка работает без особых проблем для меня. Я тестировал с
curl www.cs.jhu.edu/~anni/ALNC/030314corpus.splittoklc.tgz > /dev/null
Мне интересно, могу ли я сбросить соединение, как wget сделал автоматически первые несколько раз?
Кажется, wget автоматически повторил попытку загрузки. Из вывода терминала, который вы включили, кажется, что wget в конечном итоге «доберется». Вы можете заставить wget продолжить загрузку неполной загрузки, используя wget --continue [URL]
.
В качестве альтернативы, есть ли способ собрать разные части файла с помощью wget или пакета запросов Python или другого языка?
Начиная с wget 1.16, вы можете использовать wget --start-pos 500 [URL]
, чтобы начать загрузку с заданной позиции.
Вы также можете использовать curl -r 500-1000 [URL]
для загрузки байтов в заданном диапазоне.
Для модуля Python requests
согласно этого SO ответа :
import requests
headers = {"Range": "bytes=0-100"}
r = requests.get("https://example.com/link", headers=headers)
Ключевые слова для дополнительной информации
Ключевыми словами здесь для вашего дальнейшего поиска должны быть «запрос диапазона», «частичная загрузка», «206».