Утилита wget загружает веб-страницы, файлы и изображения из Интернета с помощью командной строки Linux . Вы можете использовать одну команду wget для загрузки с сайта или настроить входной файл для загрузки нескольких файлов с нескольких сайтов. Согласно странице руководства, wget может использоваться, даже когда пользователь вышел из системы. Для этого используйте команду nohup.
Особенности команды wget
Вы можете скачать целые веб-сайты с помощью wget и конвертировать ссылки, чтобы они указывали на локальные источники, чтобы вы могли просматривать веб-сайт в автономном режиме. Утилита wget также повторяет загрузку при разрыве соединения и возобновляет его с того места, где оно было прервано, если возможно, когда соединение возвращается.
Другие особенности wget:
- Загружайте файлы, используя HTTP, HTTPS и FTP.
- Возобновить загрузку.
- Преобразуйте абсолютные ссылки на загруженных веб-страницах в относительные URL-адреса, чтобы веб-сайты можно было просматривать в автономном режиме.
- Поддерживает HTTP прокси и куки.
- Поддерживает постоянные соединения HTTP.
- Может работать в фоновом режиме, даже если вы не вошли в систему.
- Работает на Linux и Windows.
Как скачать сайт с помощью wget
Из этого руководства вы узнаете, как загрузить этот блог о Linux :
wget www.everydaylinuxuser.com
Прежде чем начать, создайте папку на своем компьютере с помощью команды mkdir , а затем перейдите в папку с помощью команды cd .
Например:
mkdir dailylinuxuser
cd
dailylinuxuser wget www.everydaylinuxuser.com
В результате получается один файл index.html, содержащий контент, извлеченный из Google. Изображения и таблицы стилей хранятся в Google.
Чтобы загрузить полный сайт и все страницы, используйте следующую команду:
wget -r www.everydaylinuxuser.com
Это загружает страницы рекурсивно до максимум 5 уровней. Глубоких пяти уровней может быть недостаточно, чтобы получить все с сайта. Используйте ключ -l, чтобы установить количество уровней, на которые вы хотите перейти, следующим образом:
wget -r -l10 www.everydaylinuxuser.com
Если вы хотите бесконечную рекурсию, используйте следующее:
wget -r -l inf www.everydaylinuxuser.com
Вы также можете заменить inf на 0 , что означает то же самое.
Есть еще одна проблема. Вы можете получить все страницы локально, но ссылки на страницах указывают на исходное место. Невозможно локально нажимать между ссылками на страницах.
Чтобы обойти эту проблему, используйте ключ -k, чтобы преобразовать ссылки на страницах, чтобы они указывали на локально загруженный эквивалент, следующим образом:
wget -r -k www.everydaylinuxuser.com
Если вы хотите получить полное зеркало веб-сайта, используйте следующий ключ, который устраняет необходимость использования ключей -r , -k и -l .
wget -m www.everydaylinuxuser.com
Если у вас есть веб-сайт, вы можете сделать полную резервную копию с помощью этой простой команды.
Запустите wget в качестве фоновой команды
Вы можете запустить wget в качестве фоновой команды, что позволит вам продолжить работу в окне терминала во время загрузки файлов. Используйте следующую команду:
wget -b www.everydaylinuxuser.com
Вы можете комбинировать выключатели. Чтобы запустить команду wget в фоновом режиме при зеркалировании сайта, используйте следующую команду:
wget -b -m www.everydaylinuxuser.com
Вы можете упростить это далее, следующим образом:
wget -bm www.everydaylinuxuser.com
логирование
Если вы запустите команду wget в фоновом режиме, вы не увидите ни одного обычного сообщения, которое она отправляет на экран. Чтобы отправить эти сообщения в файл журнала, чтобы вы могли в любое время проверить прогресс, используйте команду tail .
Чтобы вывести информацию из команды wget в файл журнала, используйте следующую команду:
wget -o / path / to / mylogfile www.everydaylinuxuser.com
Обратное — вообще не требовать регистрации и вывода на экран. Чтобы пропустить все выходные данные, используйте следующую команду:
wget -q www.everydaylinuxuser.com
Скачать с нескольких сайтов
Вы можете настроить входной файл для загрузки с разных сайтов. Откройте файл с помощью вашего любимого редактора или команды cat и перечислите сайты или ссылки для загрузки в каждой строке файла. Сохраните файл, а затем выполните следующую команду wget:
wget -i / path / to / inputfile
Помимо резервного копирования вашего веб-сайта или поиска материалов для загрузки в автономном режиме, маловероятно, что вы захотите загрузить весь веб-сайт. Вы с большей вероятностью загрузите один URL с изображениями или загрузите файлы, такие как zip-файлы, ISO-файлы или файлы изображений.
Имея это в виду, вам не нужно вводить следующее во входной файл, так как это занимает много времени:
- http://www.myfileserver.com/file1.zip
- http://www.myfileserver.com/file2.zip
- http://www.myfileserver.com/file3.zip
Если вы знаете, что базовый URL совпадает, укажите следующее во входном файле:
- file1.zip
- file2.zip
- file3.zip
Затем вы можете предоставить базовый URL как часть команды wget следующим образом:
wget -B http://www.myfileserver.com -i / path / to / inputfile
Варианты повтора
Если вы настроили очередь файлов для загрузки во входном файле и оставили компьютер включенным для загрузки файлов, входной файл может застрять, пока вас нет, и повторите попытку загрузки содержимого. Вы можете указать количество повторных попыток, используя следующий переключатель:
wget -t 10 -i / path / to / inputfile
Используйте указанную выше команду вместе с ключом -T, чтобы указать время ожидания в секундах следующим образом:
wget -t 10 -T 10 -i / path / to / inputfile
Вышеуказанная команда будет повторяться 10 раз и будет подключаться в течение 10 секунд для каждой ссылки в файле.
Также неудобно, когда вы загружаете 75% 4-гигабайтного файла по медленному широкополосному соединению только для разрыва соединения. Чтобы использовать wget, чтобы повторить попытку с того места, где он прекратил загрузку, используйте следующую команду:
wget -c www.myfileserver.com/file1.zip
Если вы забьете сервер, хост может не понравиться и заблокировать или убить ваши запросы. Вы можете указать период ожидания, чтобы указать, как долго ждать между каждым поиском, следующим образом:
wget -w 60 -i / path / to / inputfile
Вышеуказанная команда ожидает 60 секунд между каждой загрузкой. Это полезно, если вы загружаете много файлов из одного источника.
Некоторые веб-хосты могут определить частоту и заблокировать вас. Вы можете сделать период ожидания случайным, чтобы он выглядел так, как будто вы не используете программу, следующим образом:
wget --random-wait -i / path / to / inputfile
Защитить лимиты загрузки
Многие интернет-провайдеры применяют ограничения на загрузку для широкополосного использования, особенно для тех, кто живет за пределами города. Вы можете добавить квоту, чтобы не превышать лимит загрузки. Вы можете сделать это следующим образом:
wget -q 100m -i / path / to / inputfile
Команда -q не будет работать с одним файлом. Если вы загружаете файл размером 2 гигабайта, использование -q 1000m не останавливает загрузку файла.
Квота применяется только при рекурсивной загрузке с сайта или при использовании входного файла.
Пройти через безопасность
Некоторые сайты требуют входа в систему для доступа к содержимому, которое вы хотите загрузить. Используйте следующие параметры, чтобы указать имя пользователя и пароль.
wget --user = yourusername --password = ваш пароль
В многопользовательской системе, когда кто-то запускает команду ps , он видит ваше имя пользователя и пароль.
Другие варианты загрузки
По умолчанию ключ -r рекурсивно загружает содержимое и создает каталоги по мере его поступления. Чтобы загрузить все файлы в одну папку, используйте следующий переключатель:
wget -nd -r
Противоположностью этому является принудительное создание каталогов, что может быть достигнуто с помощью следующей команды:
wget -x -r
Как скачать некоторые типы файлов
Если вы хотите выполнить рекурсивную загрузку с сайта, но хотите загрузить только файл определенного типа, например MP3, или изображение, например PNG, используйте следующий синтаксис:
wget -A "* .mp3" -r
Обратным является игнорирование определенных файлов. Возможно, вы не хотите загружать исполняемые файлы. В этом случае используйте следующий синтаксис:
wget -R "* .exe" -r
Cliget
Существует дополнение для Firefox под названием cliget. Чтобы добавить это в Firefox:
-
Посетите https://addons.mozilla.org/en-US/firefox/addon/cliget/ и нажмите кнопку « Добавить в Firefox» .
-
Нажмите кнопку « Установить» , когда она появится, а затем перезапустите Firefox.
-
Чтобы использовать cliget, перейдите на страницу или файл, который вы хотите загрузить, и щелкните правой кнопкой мыши. Появится контекстное меню с именем cliget, и есть варианты скопировать в wget и скопировать в curl .
-
Нажмите кнопку « Копировать в wget» , откройте окно терминала, затем щелкните правой кнопкой мыши и выберите « Вставить» . Соответствующая команда wget вставляется в окно.
Это избавляет вас от необходимости набирать команду самостоятельно.
Резюме
Команда wget имеет несколько опций и переключателей. Чтобы прочитать страницу руководства для wget, введите в окне терминала следующее:
человек Wget