Linux wget: ваш загрузчик командной строки
Wget — это открыто распостраняемая утилита для загрузки файлов из интернет.
Он поддерживает HTTP, FTP, HTTPS и другие протоколы, а также средство аутентификации и множество других опций.
Если вы пользователь Linux или Mac, WGET либо уже включен в пакет, который вы используете, либо это простой случай установки из любого репозитория, который вы предпочитаете, с помощью одной команды.
Как установить команду wget в Linux
Используйте команду apt / apt-get, если вы работаете в Ubuntu / Debian / Mint Linux:
$ sudo apt install wget
Пользователь Fedora Linux должен ввести команду dnf
$ sudo dnf install wget
Пользователь RHEL / CentOS / Oracle Linux должен ввести команду yum :
$ sudo yum install wget
Пользователь SUSE / OpenSUSE Linux должен ввести команду zypper:
$ zypper install wget
Пользователь Arch Linux должен ввести команду pacman:
$ sudo pacman -S wget
К сожалению, в Windows все не так просто (хотя не так сложно!).
Для запуска WGET вам необходимо скачать, распаковать и установить утилиту вручную.
Установите WGET в Windows 10
Загрузите классическую 32-разрядную версию 1.14 здесь или перейдите в эту коллекцию двоичных файлов Windows на сайте Eternal Bored здесь, чтобы получить более поздние версии и более быстрые 64-разрядные сборки.
Вот загружаемый zip-файл для 64-разрядной версии 1.2.
Если вы хотите иметь возможность запускать WGET из любого каталога в терминале, вам нужно будет узнать о переменных пути в Windows, чтобы решить, куда копировать новый исполняемый файл. Если вы это сделаете, то сможете сделать WGET командой, которую можно запускать из любого каталога в командной строке, это отдельная тема по настройке Windows.
Запуск WGET из любого места
Во-первых, нам нужно определить, куда копировать WGET.exe.
Мы собираемся переместить wget.exe в каталог Windows, который позволит запускать WGET из любого места.
После того, как вы загрузили wget.exe (или распаковали связанные с ним zip-файлы дистрибутива), откройте командный терминал, набрав «cmd» в меню поиска и запустите командную строку.
Во-первых, нам нужно выяснить, в каком каталоге это должно быть. В командную строку введите:
path
Вы должны увидеть что-то вроде этого:
Благодаря переменной окружения “Path” мы знаем, что нам нужно скопировать wget.exe в папку c:\Windows\System32.
Скопируйте WGET.exe в каталог System32 и перезапустите командную строку.
Если вы хотите проверить правильность работы WGET, перезапустите терминал и введите:
wget -h
Если вы скопировали файл в нужное место, вы увидите файл справки со всеми доступными командами.
Итак, вы должны увидеть что-то вроде этого:
Начнем работать с WGET
Мы будем работать в командной строке, поэтому давайте создадим каталог загрузок только для загрузок WGET.
Чтобы создать каталог, воспользуемся командой md («создать каталог»).
Перейдите в корневой каталог c: / и введите команду:
md wgetdown
Затем перейдите в новый каталог и введите «dir», и вы увидите (пустое) содержимое.
После того, как вы установили WGET и создали новый каталог, все, что вам нужно сделать, это изучить некоторые тонкости аргументов WGET, чтобы убедиться, что вы получаете то, что вам нужно.
Руководство Gnu.org WGET — особенно полезный ресурс для тех, кто действительно хочет узнать подробности.
Вот несколько советов, как извлечь из этого максимум пользы:
Linux wget примеры команд
Синтаксис:
wget url
wget [options] url
Давайте посмотрим на некоторые распространенные примеры команд Linux wget, синтаксис и использование.
WGET можно использовать для:
Скачать один файл с помощью wget
$ wget https://cyberciti.biz/here/lsst.tar.gz
Загрузить несколько файлов с помощью wget
$ wget https://cyberciti.biz/download/lsst.tar.gz ftp://ftp.freebsd.org/pub/sys.tar.gz ftp://ftp.redhat.com/pub/xyz-1rc-i386.rpm
Можно прочитать URL из файла
Вы можете поместить все URL в текстовый файл и использовать опцию -i, чтобы wget загрузил все файлы. Сначала создайте текстовый файл:
$ xed /temp/download.txt
Добавить список URL:
https://cyberciti.biz/download/lsst.tar.gz
ftp://ftp.freebsd.org/pub/sys.tar.gz
ftp://ftp.redhat.com/pub/xyz-1rc-i386.rpm
Введите команду wget следующим образом:
$ wget -i /temp/download.txt
Можно ограничить скорость загрузки
$ wget -c -o /temp/susedvd.log —limit-rate=50k ftp://ftp.novell.com/pub/suse/dvd1.iso
Используйте wget с сайтами, защищенными паролем
Вы можете указать http имя пользователя / пароль на сервере следующим образом:
$ wget —http-user=vivek —http-password=Secrete http://cyberciti.biz/vivek/csits.tar.gz
Другой способ указать имя пользователя и пароль — в самом URL.
$ wget ‘http://username:password@cyberciti.biz/file.tar.gz
Скачать все mp3 или pdf файлы с удаленного FTP сервера
$ wget ftp://somedom-url/pub/downloads/*.mp3
$ wget ftp://somedom-url/pub/downloads/*.pdf
Скачать сайт целиком
$ wget -r -k -l 7 -p -E -nc https://site.com/
Рассмотрим используемые параметры:
-r — указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
-k — используется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).
-p — указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).
-l — определяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.
-E — добавлять к загруженным файлам расширение .html.
-nc — при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.
По умолчанию wget загружает файл и сохраняет его с оригинальным именем в URL — в текущем каталоге.
Здесь я перечислил набор инструкций для WGET для рекурсивного зеркалирования вашего сайта, загрузки всех изображений, CSS и JavaScript, локализации всех URL-адресов (чтобы сайт работал на вашем локальном компьютере) и сохранения всех страниц как .html файл.
Чтобы скачать ваш сайт, выполните эту команду:
wget -r https://www.yoursite.com
Чтобы скачать сайт и локализовать все URL:
wget —convert-links -r https://www.yoursite.com
Чтобы создать полноценное оффлайн зеркало сайта:
wget —mirror —convert-links —adjust-extension —page-requisites —no-parent https://www.yoursite.com
Чтобы скачать сайт и сохранить файлы как .html:
wget —html-extension -r https://www.yoursite.com
Чтобы скачать все изображения в формате jpg с сайта:
wget -A «*.jpg» -r https://www.yoursite.com
Дополнительные сведения об операциях, связанных с конкретным типом файлов, можно найти в этой полезной ветке на Stack .
Установите другой пользовательский агент:
Некоторые веб-серверы настроены так, чтобы запрещать пользовательский агент WGET по умолчанию — по очевидным причинам экономии полосы пропускания. Вы можете попробовать изменить свой пользовательский агент, чтобы обойти это. Например, притворившись роботом Google:
wget —user-agent=»Googlebot/2.1 (+https://www.googlebot.com/bot.html)» -r https://www.yoursite.com
Wget режим «паук»:
Wget может получать страницы без их сохранения, что может быть полезной функцией, если вы ищете неработающие ссылки на веб-сайте. Не забудьте включить рекурсивный режим, который позволяет wget сканировать документ и искать ссылки для перехода.
wget —spider -r https://www.yoursite.com
Вы также можете сохранить это в файл журнала, добавив эту опцию:
wget —spider -r https://www.yoursite.com -o wget.log
wget -m -l 10 -e robots=off -p -k -E —reject-regex «wp» —no-check-certificate -U=«Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36» site-addr.com
Как найти неработающие ссылки на вашем сайте
wget —spider -r -nd -nv -H -l 2 -w 2 -o run1.log https://site.by
Наслаждайтесь использованием этого мощного инструмента, и я надеюсь, что вам понравился мой урок.
GNU Wget — консольная программа для загрузки файлов по сети. Поддерживает протоколы HTTP, FTP и HTTPS, а также работу через HTTP прокси-сервер. Программа включена почти во все дистрибутивы Linux. Утилита разрабатывалась для медленных соединений, поэтому она поддерживает докачку файлов при обрыве соединения.
Для работы с Wget под Windows, переходим по ссылке и скачиваем файл wget.exe
. Создаем директорию C:\Program Files\Wget-Win64
и размещаем в ней скачанный файл. Для удобства работы добавляем в переменную окружения PATH
путь до исполняемого файла.
Давайте попробуем что-нибудь скачать, скажем дистрибутив Apache под Windows:
> wget https://home.apache.org/~steffenal/VC15/binaries/httpd-2.4.35-win64-VC15.zip --2018-09-14 10:34:09-- https://home.apache.org/~steffenal/VC15/binaries/httpd-2.4.35-win64-VC15.zip Resolving home.apache.org (home.apache.org)... 163.172.16.173 Connecting to home.apache.org (home.apache.org)|163.172.16.173|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 17856960 (17M) [application/zip] Saving to: 'httpd-2.4.35-win64-VC15.zip' httpd-2.4.35-win64-VC15.zip 100%[=================================================>] 17,03M 8,50MB/s in 2,0s 2018-09-14 10:34:12 (8,50 MB/s) - 'httpd-2.4.35-win64-VC15.zip' saved [17856960/17856960]
Если утилита ругается на сертификаты при скачивании по HTTPS, нужно использовать дополнительную опцию --no-check-certificate
.
Примеры
Загрузка всех URL, указанных в файле (каждая ссылка с новой строки):
> wget -i download.txt
Скачивание файлов в указанный каталог:
> wget -P /path/for/save ftp://ftp.example.org/image.iso
Скачивание файла file.zip
и сохранение под именем archive.zip
:
> wget -O archive.zip http://example.com/file.zip
Продолжить загрузку ранее не полностью загруженного файла:
> wget -c http://example.org/image.iso
Вывод заголовков HTTP серверов и ответов FTP серверов:
> wget -S http://example.org/
Скачать содержимое каталога archive
и всех его подкаталогов, при этом не поднимаясь по иерархии каталогов выше:
> wget -r --no-parent http://example.org/some/archive/
Использование имени пользователя и пароля на FTP/HTTP:
> wget --user=login --password=password ftp://ftp.example.org/image.iso
> wget ftp://login:password@ftp.example.org/image.iso
Отправить POST-запрос в формате application/x-www-form-urlencoded
:
> wget --post-data="user=evgeniy&password=qwerty" http://example.org/auth/
Сохранение cookie
в файл cookie.txt
для дальнейшей отправки серверу:
> wget --save-cookie cookie.txt http://example.org/
Сохраненный файл cookie.txt
:
# HTTP cookie file. # Generated by Wget on 2018-09-14 11:40:37. # Edit at your own risk. example.org FALSE / FALSE 1570196437 visitor 71f61d2a01de1394f60120c691a52c56
Отправка cookie
, сохраненных ранее в файле cookie.txt
:
> wget --load-cookie cookie.txt http://example.org/
Отправка заголовков:
> wget --header="Accept-Language: ru-RU,ru;q=0.9" --header="Cookie: PHPSESSID=....." http://example.org/
Справка по утилите:
> wget -h GNU Wget 1.11.4, программа для загрузки файлов из сети в автономном режиме. Использование: wget [ОПЦИЯ]... [URL]...
Запуск: -V, --version вывод версии Wget и выход. -h, --help вывод этой справки. -b, --background после запуска перейти в фоновый режим. -e, --execute=КОМАНДА выполнить команду в стиле .wgetrc. Журналирование и входной файл: -o, --output-file=ФАЙЛ записывать сообщения в ФАЙЛ. -a, --append-output=ФАЙЛ дописывать сообщения в конец ФАЙЛА. -d, --debug вывод большого количества отладочной информации. -q, --quiet молча (без выходных данных). -v, --verbose подробный вывод (по умолчанию). -nv, --no-verbose отключение подробного режима, но не полностью. -i, --input-file=ФАЙЛ загрузка URL-ов, найденных в ФАЙЛЕ. -F, --force-html считать, что входной файл - HTML. -B, --base=URL добавление URL в начало относительных ссылок в файле -F -i. Загрузка: -t, --tries=ЧИСЛО установить ЧИСЛО повторных попыток (0 без ограничения). --retry-connrefused повторять, даже если в подключении отказано. -O, --output-document=ФАЙЛ записывать документы в ФАЙЛ. -nc, --no-clobber пропускать загрузки, которые приведут к загрузке уже существующих файлов. -c, --continue возобновить загрузку частично загруженного файла. --progress=ТИП выбрать тип индикатора выполнения. -N, --timestamping не загружать повторно файлы, только если они не новее, чем локальные. -S, --server-response вывод ответа сервера. --spider ничего не загружать. -T, --timeout=СЕКУНДЫ установка значений всех тайм-аутов в СЕКУНДЫ. --dns-timeout=СЕК установка тайм-аута поиска в DNS в СЕК. --connect-timeout=СЕК установка тайм-аута подключения в СЕК. --read-timeout=СЕК установка тайм-аута чтения в СЕК. -w, --wait=СЕКУНДЫ пауза в СЕКУНДАХ между загрузками. --waitretry=СЕКУНДЫ пауза в 1..СЕКУНДЫ между повторными попытками загрузки. --random-wait пауза в 0...2*WAIT секунд между загрузками. --no-proxy явно выключить прокси. -Q, --quota=ЧИСЛО установить величину квоты загрузки в ЧИСЛО. --bind-address=АДРЕС привязка к АДРЕСУ (имя хоста или IP) локального хоста. --limit-rate=СКОРОСТЬ ограничение СКОРОСТИ загрузки. --no-dns-cache отключение кэширования поисковых DNS-запросов. --restrict-file-names=ОС ограничение на символы в именах файлов, использование которых допускает ОС. --ignore-case игнорировать регистр при сопоставлении файлов и/или каталогов. -4, --inet4-only подключаться только к адресам IPv4. -6, --inet6-only подключаться только к адресам IPv6. --prefer-family=СЕМЕЙСТВО подключаться сначала к адресам указанного семейства, может быть IPv6, IPv4 или ничего. --user=ПОЛЬЗОВАТЕЛЬ установить и ftp- и http-пользователя в ПОЛЬЗОВАТЕЛЬ. --password=ПАРОЛЬ установить и ftp- и http-пароль в ПАРОЛЬ. Каталоги: -nd, --no-directories не создавать каталоги. -x, --force-directories принудительно создавать каталоги. -nH, --no-host-directories не создавать каталоги как на хосте. --protocol-directories использовать имя протокола в каталогах. -P, --directory-prefix=ПРЕФИКС сохранять файлы в ПРЕФИКС/... --cut-dirs=ЧИСЛО игнорировать ЧИСЛО компонентов удалённого каталога. Опции HTTP: --http-user=ПОЛЬЗОВАТЕЛЬ установить http-пользователя в ПОЛЬЗОВАТЕЛЬ. --http-password=ПАРОЛЬ установить http-пароль в ПАРОЛЬ. --no-cache отвергать кэшированные сервером данные. -E, --html-extension сохранять HTML-документы с расширением .html. --ignore-length игнорировать поле заголовка Content-Length. --header=СТРОКА вставить СТРОКУ между заголовками. --max-redirect максимально допустимое число перенаправлений на страницу. --proxy-user=ПОЛЬЗОВАТЕЛЬ установить ПОЛЬЗОВАТЕЛЯ в качестве имени пользователя для прокси. --proxy-password=ПАРОЛЬ установить ПАРОЛЬ в качестве пароля для прокси. --referer=URL включить в HTTP-запрос заголовок Referer: URL. --save-headers сохранять HTTP-заголовки в файл. -U, --user-agent=АГЕНТ идентифицировать себя как АГЕНТ вместо Wget/ВЕРСИЯ. --no-http-keep-alive отключить поддержание активности HTTP (постоянные подключения). --no-cookies не использовать кукисы. --load-cookies=ФАЙЛ загрузить кукисы из ФАЙЛА перед сеансом. --save-cookies=ФАЙЛ сохранить кукисы в ФАЙЛ после сеанса. --keep-session-cookies загрузить и сохранить кукисы сеанса (непостоянные). --post-data=СТРОКА использовать метод POST; отправка СТРОКИ в качестве данных. --post-file=ФАЙЛ использовать метод POST; отправка содержимого ФАЙЛА. --content-disposition Учитывать заголовок Content-Disposition при выборе имён для локальных файлов (ЭКСПЕРИМЕНТАЛЬНЫЙ). --auth-no-challenge Отправить базовые данные аутентификации HTTP не дожидаясь ответа от сервера. Опции HTTPS (SSL/TLS): --secure-protocol=ПР выбор безопасного протокола: auto, SSLv2, SSLv3 или TLSv1. --no-check-certificate не проверять сертификат сервера. --certificate=FILE файл сертификата пользователя. --certificate-type=ТИП тип сертификата пользователя: PEM или DER. --private-key=ФАЙЛ файл секретного ключа. --private-key-type=ТИП тип секретного ключа: PEM или DER. --ca-certificate=ФАЙЛ файл с набором CA. --ca-directory=КАТ каталог, в котором хранится список CA. --random-file=ФАЙЛ файл со случайными данными для SSL PRNG. --egd-file=ФАЙЛ файл, определяющий сокет EGD со случайными данными. Опции FTP: --ftp-user=ПОЛЬЗОВАТЕЛЬ установить ftp-пользователя в ПОЛЬЗОВАТЕЛЬ. --ftp-password=ПАРОЛЬ установить ftp-пароль в ПАРОЛЬ. --no-remove-listing не удалять файлы файлы .listing. --no-glob выключить маски для имён файлов FTP. --no-passive-ftp отключить "пассивный" режим передачи. --retr-symlinks при рекурсии загружать файлы по ссылкам (не каталоги). --preserve-permissions сохранять права доступа удалённых файлов. Рекурсивная загрузка: -r, --recursive включение рекурсивной загрузки. -l, --level=ЧИСЛО глубина рекурсии (inf и 0 - бесконечность). --delete-after удалять локальные файлы после загрузки. -k, --convert-links делать ссылки локальными в загруженном HTML. -K, --backup-converted перед преобразованием файла X делать резервную копию X.orig. -m, --mirror короткая опция, эквивалентная -N -r -l inf --no-remove-listing. -p, --page-requisites загрузить все изображения и проч., необходимые для отображения HTML-страницы. --strict-comments включить строгую (SGML) обработку комментариев HTML. Разрешения/запреты при рекурсии: -A, --accept=СПИСОК список разрешённых расширений, разделённых запятыми. -R, --reject=СПИСОК список запрещённых расширений, разделённых запятыми. -D, --domains=СПИСОК список разрешённых доменов, разделённых запятыми. --exclude-domains=СПИСОК список запрещённых доменов, разделённых запятыми. --follow-ftp следовать по ссылкам FTP в HTML-документах. --follow-tags=СПИСОК список используемых тегов HTML, разделённых запятыми. --ignore-tags=СПИСОК список игнорируемых тегов HTML, разделённых запятыми. -H, --span-hosts заходить на чужие хосты при рекурсии. -L, --relative следовать только по относительным ссылкам. -I, --include-directories=СПИСОК список разрешённых каталогов. -X, --exclude-directories=СПИСОК список исключаемых каталогов. -np, --no-parent не подниматься в родительский каталог.
Дополнительно
- WGet — программа для загрузки файлов
Поиск:
CLI • Cookie • FTP • HTTP • HTTPS • Linux • POST • Web-разработка • Windows • wget • Форма
Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
What is wget?
Wget is a free GNU command-line utility tool used to download files from the internet. It retrieves files using HTTP, HTTPS, and FTP protocols.
It serves as a tool to sustain unstable and slow network connections. If a network problem occurs during a download, this helpful software can resume retrieving the files without starting from scratch.
Another important aspect is its capability of recursive downloads, with which it mirrors websites. It transfers parts of a website by following links and directory structure, thus creating local versions of webpages.
The wget
command is also highly flexible and can be used in terminals, scripts, and cron jobs. During the download, the user does not have to be active nor logged in. As wget is non-interactive, it can independently run in the background.
Read this article to learn how to use some of the most common wget
commands.
How to Check if wget is Installed?
Most likely, the wget package is already on your system as it now comes pre-installed on most Linux distributions.
To check, open the terminal window and type in:
wget
If you have the wget software, the output tells you that the wget
command is missing a URL, as shown in the image below:
wget Command Not Found
If the output displays wget command not found
you need to download and install the tool manually. Below you will find the installation instructions for Ubuntu/Debian, CentOS, and Windows.
How to Install wget on Ubuntu/Debian?
To install wget on Ubuntu or Debian releases, use the command:
sudo apt-get install wget
How to Install wget on CentOS/Fedora?
To install wget on CentOS or Fedora, type the following command:
sudo yum install wget
How to Install wget on Windows?
To install and configure wget for Windows:
- Download wget for Windows and install the package.
- Add the wget bin path to environment variables (optional). Configuring this removes the need for full paths, and makes it a lot easier to run wget from the command prompt:
- Open the Start menu and search for “environment.”
- Select Edit the system environment variables.
- Select the Advanced tab and click the Environment Variables button.
- Select the Path variable under System Variables.
- Click Edit.
- In the Variable value field add the path to the wget bin directory preceded by a semicolon (;). If installed in the default path, add
C:Program Files (x86)GnuWin32bin
.
- Open the command prompt (cmd.exe) and start running
wget
commands.
Introduction to wget Syntax
The wget syntax has the following pattern:
wget [option][URL]
Each [option] has its long and short form which are conveniently interchangeable. This attribute specifies what to do with the URL that follows.
[URL] is the address of the file or directory you wish to download.
wget Command Examples
Download File from Web
To download a file from the web use:
wget [URL]
For example, to install Tomcat 9, first you need to download the package with wget
using the command:
wget http://apache.cs.utah.edu/tomcat/tomcat-9/v9.0.20/bin/apache-tomcat-9.0.20.tar.gz
Download File and Save Under Specific Name
To download a file and save it under a specified name run:
wget -O [file_name] [URL]
The wget command allows you to rename files prior to downloading them on your computer.
For instance, you may want to install Terraform. To download the package and rename it terraform.zip use the following command:
wget -O terraform.zip https://releases.hashicorp.com/terraform/0.12.2/terraform_0.12.2_linux_amd64.zip
Download File to Specific Directory
By default wget downloads a file in the directory the user is in. To save the file in a different location, add the -P
option:
wget -P [wanted_directory] [URL]
For example, while installing Git on Ubuntu, you can download the package in the /temp directory with the command:
wget -P /temp https://github.com/git/git/archive/master.zip
Set Download Speed
You can set the download speed when downloading a big file, so it does not use the full available bandwidth. The download speed is defined in kilobytes (k) and megabytes (m). Use the command:
wget --limit-rate [wanted_speed] [URL]
For example, if you are installing NVIDIA TESLA drivers on Linux and want to limit the download speed to 1 megabyte, would use the command:
wget --limit-rate 1m http://us.download.nvidia.com/tesla/396.37/nvidia-diag-driver-local-repo-ubuntu1710-396.37_1.0-1_amd64.deb
Continue Download After Interruption
Instead of having to start from scratch, wget
can resume downloading where it stopped before the interruption. This is a useful feature if there is a lost of connection while downloading a file.
wget -c [URL]
For instance, you may want to install a Mumble Server on Linux and suddenly lose internet connection while downloading the installation file. To continue downloading, type in the command:
wget -c https://github.com/mumble-voip/mumble/releases/download/1.2.19/murmur-static_x86-1.2.19.tar.bz2
Download Multiple Files
wget
allows downloading multiple files at the same time using the command:
wget -i [file_name]
To do so, follow the steps outlined below:
1. First, create and open a file under the name MultipleDownloads.txt (or a name of your choice), using a text editor. In this case, we used Nano:
nano MultipleDownloads.txt
2. Once in the editor, add the URLs of the packages you want to download, one per line.
3. Save and exit the file.
4. Run the following wget
command in the terminal window:
wget -i MultipleDownloads.txt
This prompts wget to download from each URL in the text file.
Download Web page (Mirror Web page)
With wget you can download an entire website from the internet, using the -m
option. It prompts wget to create a mirror of the specified webpage. The basic command for doing so is:
wget -m [URL]
For example:
wget -m <a href="https://phoenixnap.com/" target="_blank" rel="noreferrer noopener">https://phoenixnap.com</a>
Download via FTP
To download via FTP, type in the username and password of the FTP server, followed by the ftp address:
wget --ftp-user=[ftp_username] --ftp-password=[ftp_password] ftp://...
For instance:
wget --ftp-user=sofiftp --ftp-password=TopSecretPassword ftp://123.456.7890
Download in Background
You can download in the background, a practical feature when dealing with a large file:
wget -b [URL]
You can check the status of the download with the command:
tail -f wget -log
To download the RPM package manager in the background, type:
wget -b http://some_website/sample_file.rpm
Increase Retry Attempts
You can set how many times wget attempts to download a file after being interrupted by a bad network with:
wget --tries=[number_of_tries] [URL]
By default, the number of retry attempts is set to 20.
You can also set the number to infinity with the values 0 or inf, as in the following example:
wget --tries=inf http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
Skip Certificate Check
By default, wget checks whether the server has a valid SSL/TLS certificate. If it does not identify an authentic certificate, it refuses to download.
The --no-check-certificate
option is used to avoid certificate authorities checking for a server certificate. However, utilize it only if you are sure of the website’s credibility or are not worried about security issues it may cause.
wget --no-check-certificate [URL]
If http://enteratonerisk.com has an untrusted certificate, but will not harm the system, you can download it with:
wget --no-check-certificate http://enteratonerisk.com
Change User Agent
When downloading a webpage, wget essentially emulates a browser. In some cases, the output might say you don’t have permission to access the server, or that the connection is forbidden. This may be due to a website blocking client browsers that have a specific “User-Agent.”
“User-Agent” is a header field that the browser sends to the server it wants to access. Therefore, to download from a server that is refusing to connect, try to modify the user agent.
Find a database of all user agents online, search for the one you need and run the command:
wget --user-agent="User Agent Here" "[URL]"
or
wget -U "User Agent Here" "[URL]"
For example, to emulate Chrome (version 74), you would change the user agent with the command:
wget --user-agent=" Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" "https://phoenixnap.com"
Note: Make sure you always download from a trusted source because wget
can instruct a download of a script from a malicious source. We outline this and many other dangerous commands in our article 14 Dangerous Linux Terminal Commands.
Conclusion
This article sums up why wget
is such a powerful tool for downloading files over the internet. It also serves as a good reference for beginners with its list of 12 essential wget
commands and examples.
Credit: phoenixnap.com/kb/wget-command-with-examples
What does WGET Do?
Once installed, the WGET command allows you to download files over the TCP/IP protocols: FTP, HTTP and HTTPS.
If you’re a Linux or Mac user, WGET is either already included in the package you’re running or it’s a trivial case of installing from whatever repository you prefer with a single command.
Unfortunately, it’s not quite that simple in Windows (although it’s still very easy!).
To run WGET you need to download, unzip and install manually.
Install WGET in Windows 10
Download the classic 32 bit version 1.14 here or, go to this Windows binaries collection at Eternally Bored here for the later versions and the faster 64 bit builds.
Here is the downloadable zip file for version 1.2 64 bit.
If you want to be able to run WGET from any directory inside the command terminal, you’ll need to learn about path variables in Windows to work out where to copy your new executable. If you follow these steps, you’ll be able to make WGET a command you can run from any directory in Command Prompt.
Run WGET from anywhere
Firstly, we need to determine where to copy WGET.exe.
After you’d downloaded wget.exe (or unpacked the associated distribution zip files) open a command terminal by typing “cmd” in the search menu:
We’re going to move wget.exe into a Windows directory that will allow WGET to be run from anywhere.
First, we need to find out which directory that should be. Type:
path
You should see something like this:
Thanks to the “Path” environment variable, we know that we need to copy wget.exe to the c:\Windows\System32
folder location.
Go ahead and copy WGET.exe to the System32 directory and restart your Command Prompt.
Restart command terminal and test WGET
If you want to test WGET is working properly, restart your terminal and type:
wget -h
If you’ve copied the file to the right place, you’ll see a help file appear with all of the available commands.
So, you should see something like this:
Now it’s time to get started.
Get started with WGET
Seeing that we’ll be working in Command Prompt, let’s create a download directory just for WGET downloads.
To create a directory, we’ll use the command md
(“make directory”).
Change to the c:/ prompt and type:
md wgetdown
Then, change to your new directory and type “dir” to see the (blank) contents.
Now, you’re ready to do some downloading.
Example commands
Once you’ve got WGET installed and you’ve created a new directory, all you have to do is learn some of the finer points of WGET arguments to make sure you get what you need.
The Gnu.org WGET manual is a particularly useful resource for those inclined to really learn the details.
If you want some quick commands though, read on. I’ve listed a set of instructions to WGET to recursively mirror your site, download all the images, CSS and JavaScript, localise all of the URLs (so the site works on your local machine), and save all the pages as a .html file.
To mirror your site execute this command:
wget -r https://www.yoursite.com
To mirror the site and localise all of the urls:
wget --convert-links -r https://www.yoursite.com
To make a full offline mirror of a site:
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent https://www.yoursite.com
To mirror the site and save the files as .html:
wget --html-extension -r https://www.yoursite.com
To download all jpg images from a site:
wget -A "*.jpg" -r https://www.yoursite.com
For more filetype-specific operations, check out this useful thread on Stack.
Set a different user agent:
Some web servers are set up to deny WGET’s default user agent – for obvious, bandwidth saving reasons. You could try changing your user agent to get round this. For example, by pretending to be Googlebot:
wget --user-agent="Googlebot/2.1 (+https://www.googlebot.com/bot.html)" -r https://www.yoursite.com
Wget “spider” mode:
Wget can fetch pages without saving them which can be a useful feature in case you’re looking for broken links on a website. Remember to enable recursive mode, which allows wget to scan through the document and look for links to traverse.
wget --spider -r https://www.yoursite.com
You can also save this to a log file by adding this option:
wget --spider -r https://www.yoursite.com -o wget.log
Enjoy using this powerful tool, and I hope you’ve enjoyed my tutorial. Comments welcome!
Что такое wget?
Это утилита командной строки для получения файлов с использованием HTTP, HTTPS и FTP протоколов.
Как установить wget на компьютер с ОС Windows?
Вариант, которым пользуюсь сам, это скачать архив с уже скомпилированными бинарными файлами GNU Wget 0
После того как скачали архив, в любом месте создаём папку wget, например в C:\Program Files\wget
и в эту папку распаковываем всё содержимое скачанного архива.
Чтобы программа свободно вызывалась отовсюду нужно добавить путь в переменную среды Path операционной системы Windows. Для этого заходим в Панель управления > Система
В зависимости какая разрядность у вашей установленной Windows, запускайте 32-битную либо 64-битную версию программы, wget либо wget64 соответственно.
Обратите внимание, что начиная с версии wget 1.20 прекращена поддержка Windows XP.
Примеры команд для wget:
Скачать файл с докачкой по протоколу http
wget -c http://ftp.byfly.by/pub/CentOS/8/isos/x86_64/CentOS-8.3.2011-x86_64-boot.iso
Скачать файл по протоколу https
wget --no-check-certificate https://www.linux.org.ru/images/7626/original.jpg
Скачать файл с докачкой по протоколу ftp
wget -c ftp://ftp.byfly.by/pub/CentOS/8/isos/x86_64/CentOS-8.3.2011-x86_64-boot.iso
Скачать с докачкой файлы по списку ссылок (в текстовом файле)
wget -c -i spisok.txt
Скачать рекурсивно указанный сайт
wget -rkx URL
Описание прочих команд смотрите во встроенной в программу помощи
wget -h GNU Wget 1.20.3, программа для загрузки файлов из сети в автономном режиме. Использование: wget [ПАРАМЕТР]... [URL]... Обязательные аргументы для длинных параметров являются обязательными и для коротких параметров. Запуск: -V, --version показать версию Wget и завершить работу -h, --help показать эту справку -b, --background после запуска перейти в фоновый режим -e, --execute=КОМАНДА выполнить команду в стиле <.wgetrc> Журналирование и входной файл: -o, --output-file=ФАЙЛ записывать сообщения в ФАЙЛ -a, --append-output=ФАЙЛ дописывать сообщения в конец ФАЙЛА -d, --debug показать много отладочной информации -q, --quiet ничего не выводить -v, --verbose показывать подробные сведения (по умолчанию) -nv, --no-verbose отключить вывод подробных сведений (не полностью) --report-speed=ТИП единицы измерения пропускной способности определить ТИПОМ. ТИП может быть равно bits -i, --input-file=ФАЙЛ загрузить URL-ы согласно локальному или внешнему ФАЙЛУ --input-metalink=ФАЙЛ скачать файлы, перечисленные в локальном ФАЙЛЕ Metalink -F, --force-html считать, что входной файл - HTML -B, --base=URL считать, что ссылки из входного файла (-i -F) указаны относительно URL --config=ФАЙЛ задать файл настроек --no-config не читать файлы настроек --rejected-log=ФАЙЛ протоколировать причины отброса URL в ФАЙЛ Загрузка: -t, --tries=ЧИСЛО установить ЧИСЛО повторных попыток (0 без ограничения) --retry-connrefused повторять, даже если в подключении отказано -O, --output-document=ФАЙЛ записывать документы в ФАЙЛ -nc, --no-clobber пропускать загрузки, которые приведут к загрузке уже существующих файлов (и их перезаписи) --no-netrc don't try to obtain credentials from .netrc -c, --continue возобновить загрузку частично загруженного файла --start-pos=СМЕЩЕНИЕ начинать загрузку со СМЕЩЕНИЯ (считается с 0) --progress=ТИП выбрать тип индикатора выполнения --show-progress показывать индикатор выполнения в любом режиме подробности -N, --timestamping не загружать повторно файлы, только если они не новее, чем локальные --no-use-server-timestamps не использовать проверку if-modified-since для запросов в режиме учёта меток времени --no-use-server-timestamps не устанавливать метку времени локальному файлу, полученную с сервера -S, --server-response вывод ответа сервера --spider ничего не загружать -T, --timeout=СЕКУНДЫ установка значений всех тайм-аутов равными числу СЕКУНД --dns-servers=АДРЕСА список запрашиваемых серверов DNS (через запятую) --bind-dns-address=АДРЕС привязать определитель DNS к АДРЕСУ (имя компьютера или IP) локального компьютера --dns-timeout=СЕК установка тайм-аута поиска в DNS в СЕК --connect-timeout=СЕК установка тайм-аута подключения в СЕК --read-timeout=СЕК установка тайм-аута чтения в СЕК -w, --wait=СЕКУНДЫ пауза в СЕКУНДАХ между загрузками --waitretry=СЕКУНДЫ пауза в 1..СЕКУНДЫ между повторными попытками загрузки --random-wait пауза в 0.5*WAIT...1.5*WAIT секунд между загрузками --no-proxy явно выключить прокси -Q, --quota=ЧИСЛО установить величину квоты загрузки в ЧИСЛО --bind-address=АДРЕС привязать АДРЕС (имя компьютера или IP) локального компьютера --limit-rate=СКОРОСТЬ ограничить СКОРОСТЬ загрузки --no-dns-cache отключить кэширование DNS-запросов --restrict-file-names=ОС использовать в именах файлов символы, допустимые в ОС --ignore-case игнорировать регистр при сопоставлении файлов и/или каталогов -4, --inet4-only подключаться только к адресам IPv4 -6, --inet6-only подключаться только к адресам IPv6 --prefer-family=СЕМЕЙСТВО подключаться сначала к адресам указанного семейства (может быть IPv6, IPv4 или ничего) --user=ПОЛЬЗОВАТЕЛЬ установить и ftp- и http-пользователя в ПОЛЬЗОВАТЕЛЬ --password=ПАРОЛЬ установить ftp- и http-пароль в ПАРОЛЬ --ask-password запрашивать пароли --use-askpass=КОМАНДА указать обработчик мандатов для запроса имени пользователя и пароля. Если КОМАНДА не указана, то используется переменная окружения WGET_ASKPASS или SSH_ASKPASS. --no-iri выключить поддержку IRI --local-encoding=КДР использовать КДР как локальную кодировку для IRI --remote-encoding=КДР использовать КДР как удалённую кодировку по умолчанию --unlink удалить файл перед затиранием --keep-badhash оставлять файлы с неправильными контрольными суммами (добавляя .badhash) --metalink-index=НОМЕР порядковый НОМЕР metaurl Metalink application/metalink4+xml --metalink-over-http использовать метаданные Metalink из заголовка ответов HTTP --preferred-location предпочитаемое расположение ресурсов Metalink Каталоги: -nd, --no-directories не создавать каталоги -x, --force-directories принудительно создавать каталоги -nH, --no-host-directories не создавать каталоги как на узле --protocol-directories использовать имя протокола в каталогах -P, --directory-prefix=ПРЕФИКС сохранять файлы в ПРЕФИКС/.. --cut-dirs=ЧИСЛО игнорировать ЧИСЛО компонентов удалённого каталога Параметры HTTP: --http-user=ПОЛЬЗОВ. установить http-пользователя в ПОЛЬЗОВАТЕЛЬ --http-password=ПАРОЛЬ установить http-пароль в ПАРОЛЬ --no-cache отвергать кэшированные сервером данные --default-page=ИМЯ изменить имя страницы по умолчанию (обычно это ) -E, --adjust-extension сохранять документы HTML/CSS с надлежащими расширениями --ignore-length игнорировать поле заголовка --header=СТРОКА вставить СТРОКУ между заголовками --compression=TYPE choose compression, one of auto, gzip and none. (default: none) --max-redirect максимально допустимое число перенаправлений на страницу --proxy-user=ПОЛЬЗОВ. установить ПОЛЬЗОВАТЕЛЯ в качестве имени пользователя для прокси --proxy-password=ПАРОЛЬ установить ПАРОЛЬ в качестве пароля для прокси --referer=URL включить в HTTP-запрос заголовок --save-headers сохранять HTTP-заголовки в файл -U, --user-agent=АГЕНТ идентифицировать себя как АГЕНТ вместо Wget/ВЕРСИЯ --no-http-keep-alive отключить поддержание активности HTTP (постоянные подключения) --no-cookies не использовать кукисы --load-cookies=ФАЙЛ загрузить кукисы из ФАЙЛА перед сеансом --save-cookies=ФАЙЛ сохранить кукисы в ФАЙЛ после сеанса --keep-session-cookies загрузить и сохранить кукисы сеанса (непостоянные) --post-data=СТРОКА использовать метод POST; отправка СТРОКИ в качестве данных --post-file=ФАЙЛ использовать метод POST; отправка содержимого ФАЙЛА --method=HTTPMethod использовать метод в заголовке --body-data=СТРОКА отправка СТРОКИ в качестве данных; ДОЛЖЕН быть указан параметр --method --body-file=ФАЙЛ отправка содержимого ФАЙЛА; ДОЛЖЕН быть указан параметр --method --content-disposition учитывать заголовок Content-Disposition при выборе имён для локальных файлов (ЭКСПЕРИМЕНТАЛЬНЫЙ) --content-on-error выводить принятые данные при ошибках сервера --auth-no-challenge отправлять информацию об аутентификации Basic HTTP не дожидаясь первого ответа сервера Параметры HTTPS (SSL/TLS): --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2 and PFS --https-only переходить только по безопасным ссылкам HTTPS --no-check-certificate не проверять сертификат сервера --certificate=FILE файл сертификата пользователя --certificate-type=ТИП тип сертификата пользователя: PEM или DER --private-key=ФАЙЛ файл секретного ключа --private-key-type=ТИП тип секретного ключа: PEM или DER --ca-certificate=ФАЙЛ файл с набором CA --ca-directory=КАТ каталог, в котором хранится список CA --crl-file=ФАЙЛ файл с набором CRL --pinnedpubkey=ФАЙЛ/ХЭШИ Файл с открытым ключом (PEM/DER) или любое количество хэшей sha256 в виде base64, начинающихся с и разделённых <;>, по которым проверяется ответный узел Параметры HSTS: --no-hsts отключить HSTS --hsts-file путь к базе данных HSTS (заменит значение по умолчанию) Параметры FTP: --ftp-user=ПОЛЬЗОВАТЕЛЬ установить ftp-пользователя в ПОЛЬЗОВАТЕЛЬ --ftp-password=ПАРОЛЬ установить ftp-пароль в ПАРОЛЬ --no-remove-listing не удалять файлы <.listing> --no-glob выключить маски для имён файлов FTP --no-passive-ftp отключить <пассивный> режим передачи --preserve-permissions сохранять права доступа удалённых файлов --retr-symlinks при рекурсии загружать файлы по ссылкам (не каталоги) Параметры FTPS: --ftps-implicit безусловно использовать FTPS (порт по умолчанию - 990) --ftps-resume-ssl возобновлять сеанс SSL/TLS, начатый в канале управления, при открытии канала данных --ftps-clear-data-connection шифровать только канал управления; данные не шифруются --ftps-fallback-to-ftp вернуться к FTP, если FTPS не поддерживается сервером Параметры WARC: --warc-file=ФАЙЛ записать данные запроса/ответа в файл .warc.gz --warc-header=СТРОКА вставить СТРОКУ в запись warcinfo --warc-max-size=ЧИСЛО максимальный размер файлов WARC равен ЧИСЛУ --warc-cdx записать индексные файлы CDX --warc-dedup=ФАЙЛ не сохранять записи, перечисленные в файле CDX --no-warc-compression не сжимать файлы WARC с помощью GZIP --no-warc-digests не вычислять дайджесты SHA1 --no-warc-keep-log не сохранять файл журнала в записи WARC --warc-tempdir=КАТАЛОГ расположение для временных файлов, создаваемых процедурой записи WARC Рекурсивная загрузка: -r, --recursive включение рекурсивной загрузки -l, --level=ЧИСЛО глубина рекурсии (inf и 0 - бесконечность) --delete-after удалять локальные файлы после загрузки -k, --convert-links делать ссылки локальными в загруженном HTML или CSS --convert-file-only преобразовывать только файловую часть URL (базовую часть имени) --backups=N перед записью файла X, ротировать до N резервных файлов -K, --backup-converted перед преобразованием файла X делать резервную копию в виде X.orig -m, --mirror короткий параметр, эквивалентный -N -r -l inf --no-remove-listing -p, --page-requisites загрузить все изображения и проч., необходимые для отображения HTML-страницы --strict-comments включить строгую (SGML) обработку комментариев HTML Разрешения/запреты при рекурсии: -A, --accept=СПИСОК список разрешённых расширений через запятую -R, --reject=СПИСОК список запрещённых расширений, разделённых запятыми. --accept-regex=РЕГВЫР регулярное выражение для разрешённых URL --reject-regex=РЕГВЫР регулярное выражение для запрещённых URL --regex-type=ТИП тип регулярного выражения (posix|pcre) -D, --domains=СПИСОК список разрешённых доменов, через запятую --exclude-domains=СПИСОК список запрещённых доменов, через запятую --follow-ftp следовать по ссылкам FTP в HTML-документах --follow-tags=СПИСОК список используемых тегов HTML, через запятую --ignore-tags=СПИСОК список игнорируемых тегов HTML, через запятую -H, --span-hosts заходить на чужие узлы при рекурсии -L, --relative следовать только по относительным ссылкам -I, --include-directories=СПИСОК список разрешённых каталогов --trust-server-names использовать имя, указанное в перенаправляющем URL, в качестве последнего компонента. -X, --exclude-directories=СПИСОК список исключаемых каталогов -np, --no-parent не подниматься в родительский каталог