Скачать файл с сайта в командной строке в Linux

2291
Vicky

Мне нужно скачать файл с веб-сайта, который имеет URL-адрес в следующем формате:

http://www.server.com/downloads/1234/ 

Это перенаправляет в файл .zip, который должен быть сохранен. Существует также необходимость аутентификации на основе имени пользователя и пароля.

Я пытался использовать wget, curlи lynxбез удачи.

ОБНОВИТЬ:

  • wgetне работает с перенаправлением. Он просто загружает веб-страницу вместо zip-файла.
  • curl выдает ошибку «Максимальное перенаправление превышено> 50»
  • lynx также выдает ту же ошибку.
2
Вы получаете ошибки, или это просто не работает? 12 лет назад 1
Как вы вызывали lynx / curl / wget? Какую ошибку вы получили? Noufal Ibrahim 12 лет назад 2
Я обновил вопрос .. Vicky 12 лет назад 0
If you have to log in and then the site redirects then you'll have to authenticate (submit your user/pass), probably a POST, then use the cookie the is returned in the next request. The curl error you're getting is probably you missing a parameter or cookie in the redirection (e.g. they set a Session cookie and you're not passing it on the redirection so it redirect you away, then redirect you back...infinite loop perhaps???). 12 лет назад 1

1 ответ на вопрос

3
Yanick Rochon

Wget поддерживает перенаправление, это работает?

wget --user=USER --password=PASS --max-redirect URL 

Обратите внимание, что если сайт не осуществляет проверку подлинности HTTP (требуется отправка формы через GET или POST), то вам нужно настроить немного больше работы (учитывая мало информации вы даете о сайте, где файл, хороший ответ сложно дать)

wget --post-file=datafile --keep-session-cookies --max-redirect URL 

и ваш datafileможет выглядеть

username=USER password=PASS 

где usernameи passwordдолжно быть имя отправляемых полей формы.

ПРИМЕЧАНИЕ: сайт должен перенаправлять на сам Zip-файл, а не на какую-либо другую страницу, где есть ссылка на Zip-файл. Если это так, вам нужно написать скрипт синтаксического анализа, потому что ни Curl, ни Wget вам не помогут. Это инструменты для извлечения контента из заданного URL-адреса, они не предназначены для «угадывания» того, что вы хотите, чтобы они извлекали; они просто скачивают то, что отправляет сервер.

Похожие вопросы