Wget – свободная утилита, предоставляющая неинтерактивный способ загрузки файлов из интернета по HTTPS, HTTP, FTP и даже HTTP-прокси.
Вы можете запустить wget в фоновом режиме, а он доделает всю назначенную работу. Обычно утилиту используют для получения всего веб-сайта, перехода по ссылкам на страницах XHTML/HTML и создания локальной версии сайта. Синтаксис wget выглядит так:
Попробуем загрузить страницу github.com:
Если все подключилось, то wget загрузит домашнюю страницу и покажет результат, как показано ниже:
Круто, если можно загрузить сразу несколько файлов. Это, кстати, идея для написания какого-нибудь скрипта для автоматизации загрузки файлов, подумайте на досуге.
Попробуем скачать архивы с Python 3.8.1 и 3.5.1:
Как вы уже догадались, синтаксис такой:
Не забывайте про пробел между ссылками!
Ограничить скорость загрузки полезно, когда стоит задача проверить, сколько времени занимает загрузка файла на разной пропускной способности.
Используя опцию — limit-rate , вы можете ограничить скорость загрузки.
Вот результат загрузки файла Node.js:
Потребовалось 0.05 с, чтобы скачать 13.92 Мб. Теперь попробуем ограничить скорость до 500 Кб/с:
Скорость загрузки упала до 28 с. Представьте себе ситуацию – юзеры жалуются на медленную загрузку. Вы можете быстро поиграться с limit-rate для имитации проблемы.
Загрузка больших файлов может занять некоторое время, но что если вы не хотите смотреть в терминал?
Можно использовать ключ -b , чтобы запустить wget в фоновом режиме:
Игнорирование ошибки сертификата удобно, когда вам нужно обратиться к узлу во внешней сети без соответствующего сертификата. Если сертификат не является валидным, по умолчанию wget выдаст ошибку.
На примере выше результат истекшего срока действия сертификата. Предлагается использовать —no-check-certificate для игнорирования любой проверки сертификата. Сравним результат с добавленным ключом:
С помощью ключа -S в терминал будет выведен заголовок, как это произошло с Яндексом:
Бывает так, что мы хотим открыть сайт с помощью другого user-agent . Это можно сделать, указав ключ —user-agent :
Когда приложение находится в разработке и есть необходимость что-то потестить, но нет подходящего URL-адреса или мы хотим протестировать домен с использованием IP-адреса – в обеих ситуациях будет полезен —header .
Для примера возьмем http://10.10.10.1 и application.com в качестве заголовка:
Если вы работаете в среде DMZ, вас может не выпускать в интернет. Воспользуйтесь преимуществами прокси для подключения:
Не забудьте в переменной $PROXYHOST:PORT указать реальные значения.
Обычно рекомендуют использовать OpenSSL для тестирования протокола TLS. Но можете использовать и wget .
Вышеизложенное заставит wget подключиться через TLS 1.2.
Если вам интересно подробнее разобраться в утилите, имеется перевод документации wget на русский. В некоторых случаях хорошей альтернативой wget является cURL, а для создания зеркал сайтов (чего cURL не умеет) обычно используется rsync.