BLOCKCHAIN. ОБУЧЕНИЕ И УСЛУГИ IT-ТЕХНОЛОГИЯМ. WEB 3.0
10 примеров использования консольной программы wget
Знакомимся на практике с wget – популярной утилитой командной строки *nix-систем для извлечения содержимого из интернета.
Что такое wget?
Wget – свободная утилита, предоставляющая неинтерактивный способ загрузки файлов из интернета
по HTTPS, HTTP, FTP и даже HTTP-прокси.
Вы можете запустить wget в фоновом режиме, а он доделает
всю назначенную работу. Обычно утилиту используют для получения всего веб-сайта,
перехода по ссылкам на страницах XHTML/HTML и создания локальной версии сайта.
Синтаксис wget выглядит так:
1. Скачивание страницы
Попробуем загрузить
страницу github.com:
Если все подключилось,
то wget загрузит домашнюю страницу и покажет результат, как показано ниже:
2. Скачивание нескольких
файлов
Круто, если можно
загрузить сразу несколько файлов. Это, кстати, идея для написания какого-нибудь
скрипта для автоматизации загрузки файлов, подумайте на досуге.
Попробуем скачать
архивы с Python 3.8.1 и 3.5.1:
Как вы уже догадались,
синтаксис такой:
Не забывайте про пробел
между ссылками!
3. Ограничение скорости
загрузки
Ограничить скорость загрузки полезно,
когда стоит задача проверить, сколько времени занимает загрузка файла на разной
пропускной способности.
Используя опцию --
limit-rate, вы можете ограничить скорость загрузки.
Потребовалось 0.05 с, чтобы скачать 13.92 Мб. Теперь попробуем ограничить скорость до 500 Кб/с:
Скорость загрузки упала
до 28 с. Представьте себе ситуацию – юзеры жалуются на медленную загрузку.
Вы можете быстро поиграться с limit-rate для имитации проблемы.
4. Загрузка в фоне
Загрузка больших файлов
может занять некоторое время, но что если вы не хотите смотреть в терминал?
Можно использовать ключ -b, чтобы запустить wget в фоновом режиме:
5. Игнорирование ошибки
сертификата
Игнорирование ошибки сертификата удобно, когда вам
нужно обратиться к узлу во внешней сети без соответствующего сертификата. Если сертификат не является валидным, по
умолчанию wget выдаст ошибку.
На примере выше результат истекшего срока действия сертификата. Предлагается использовать --no-check-certificate для игнорирования любой проверки сертификата. Сравним результат с добавленным ключом:
6. Заголовок HTTP ответа
С помощью ключа -S в
терминал будет выведен заголовок, как это произошло с Яндексом:
7. Манипуляции с
User-Agent
Бывает так, что мы хотим открыть сайт с помощью другого user-agent. Это можно сделать, указав ключ --user-agent:
8. Заголовок хоста
Когда приложение находится
в разработке и есть необходимость что-то потестить, но нет подходящего
URL-адреса или мы хотим протестировать домен с использованием IP-адреса – в обеих ситуациях будет полезен --header.
Для примера возьмем http://10.10.10.1 и application.com в качестве заголовка:
9. Подключение через
прокси
Если вы работаете в
среде DMZ, вас может не выпускать в интернет. Воспользуйтесь преимуществами
прокси для подключения:
Не забудьте в
переменной $PROXYHOST:PORT указать реальные значения.
10. Подключение через TLS
Обычно рекомендуют
использовать OpenSSL для тестирования протокола TLS. Но можете использовать и wget.
Вышеизложенное заставит wget подключиться через TLS 1.2.
Заключение
Если вам интересно подробнее разобраться в утилите, имеется перевод документации wget на русский. В некоторых случаях хорошей альтернативой wget является cURL, а для создания зеркал сайтов (чего cURL не умеет) обычно используется rsync.
Еще вам могут быть интересны следующие публикации: