Wget для windows

Команда wget для скачивания всего сайта

Вы даже можете использовать wget для загрузки всего веб-сайта, который вы можете просматривать локально, в автономном режиме, без необходимости подключения к интернету. Для этого можно использовать следующую команду:

wget --mirror --convert-links --page-requisites ----no-parent -P /path/to/download https://example-domain.com

С —mirror, вы включите все опции, необходимые для зеркального отображения.

С –convert-links, вы будете конвертировать все ссылки, так что они будут работать в автономном режиме.

С –page-requisites, загрузятся все необходимые файлы, такие как таблицы стилей CSS и изображения, необходимых для правильного отображения страницы в автономном режиме.

С –no-parent, вы можете ограничить загрузку только к определенной части сайта.

Кроме того, вы можете установить путь туда, куда мы хотим загрузить файлы с помощью команды -P, а затем путь к каталогу.

Мы рассмотрели некоторые из наиболее распространенных видов использования команды wget. Чтобы узнать больше о wget, вы всегда можете проверить его страницу с помощью команды man wget.

Using Wget in Windows Subsystem for Linux

We have already seen how to use bash in windows 10. Through WSL we can also use Wget natively. To do this, we’ll open ubuntu and run the following command:

Enter your password, and wait while the program is installed. Now we are ready to use wget in Windows 10.

Wget en WSL

Finally, we have seen how to install Wget in Windows 10. We can do it natively or using the Windows Subsystem for Linux. Both methods are valid for using this powerful download tool. Not only will we have access to files, but also to complete pages so that they can run offline. All right, that’s it for now, if you have any questions, don’t hesitate to ask. We are here to serve! until next time!

Использование wget Linux

Команда wget linux, обычно поставляется по умолчанию в большинстве дистрибутивов, но если нет, ее можно очень просто установить. Например установка с помощью yum будет выглядеть следующим образом:

А в дистрибутивах основанных на Debian:

Теперь перейдем непосредственно к примерам:

1. Загрузка файла

Команда wget linux скачает один файл и сохранит его в текущей директории. Во время загрузки мы увидим прогресс, размер файла, дату его последнего изменения, а также скорость загрузки:

Опция -О позволяет задать имя сохраняемому файлу, например, скачать файл wget с именем wget.zip:

Вы можете скачать несколько файлов одной командой даже по разным протоколам, просто указав их URL:

4. Взять URL из файла

Вы можете сохранить несколько URL в файл, а затем загрузить их все, передав файл опции -i. Например создадим файл tmp.txt, со ссылками для загрузки wget, а затем скачаем его:

5. Продолжить загрузку

Утилита wget linux рассчитана на работу в медленных и нестабильных сетях. Поэтому если вы загружали большой файл, и во время загрузки было потеряно соединение, то вы можете скачать файл wget с помощью опции -c.

6. Загрузка файлов в фоне

Опция -b заставляет программу работать в фоновом режиме, весь вывод будет записан в лог файл, для настройки лог файла используются специальные ключи wget:

7. Ограничение скорости загрузки

Команда wget linux позволяет не только продолжать загрузку файлов, но и ограничивать скорость загрузки. Для этого есть опция —limit-rate. Например ограничим скорость до 100 килобит:

Здесь доступны, как и в других подобных командах индексы для указания скорости — k — килобит, m — мегабит, g — гигабит, и так далее.

8. Подключение по логину и паролю

Некоторые ресурсы требуют аутентификации, для загрузки их файлов. С помощью опций —http-user=username, –http-password=password и —ftp-user=username, —ftp-password=password вы можете задать имя пользователя и пароль для HTTP или FTP ресурсов.

Или:

9. Загрузить и выполнить

Вы, наверное, уже видели такие команды. wget позволяет сразу же выполнять скачанные скрипты:

Если опции -O не передать аргументов, то скачанный файл будет выведен в стандартный вывод, затем мы его можем перенаправить с интерпретатор bash, как показано выше.

По умолчанию wget сохраняет файл в текущую папку, но это поведение очень легко изменить с помощью опции -P:

11. Передать информацию о браузере

Некоторые сайты фильтруют ботов, но мы можем передать фальшивую информацию о нашем браузере (user-agent) и страницу с которой мы пришли (http-referer).

12. Количество попыток загрузки

По умолчанию wget пытается повторить загрузку 20 раз, перед тем как завершить работу с ошибкой. Количество раз можно изменить с помощью опции —tries:

13. Квота загрузки

Если вам доступно только ограниченное количество трафика, вы можете указать утилите, какое количество информации можно скачивать, например разрешим скачать файлов из списка только на десять мегабайт:

Здесь работают те же индексы для указания размера — k, m, g, и т д.

14. Скачать сайт

Wget позволяет не только скачивать одиночные файлы, но и целые сайты, чтобы вы могли их потом просматривать в офлайне. Использование wget, чтобы скачать сайт в linux выглядит вот так:

ОПИСАНИЕ

GNU Wget – это открыто распостраняемая утилита для загрузки файлов из интернет. Она поддерживает протоколы HTTP, HTTPS, и FTP, загрузку с серверов прокси по протоколу HTTP. Wget может следовать по ссылкам страниц HTML и создавать локальные копии удаленных сайтов web, при этом возможно полное восстановление структуры папок сайта (“recursive downloading” – рекурсивная загрузка). Во время такой работы Wget ищет файл с правами доступа для роботов (/robots.txt). Возможна также конвертация ссылок в загруженных файлах HTML для дальнейшего просмотра сайта в автономном режиме (“off-line browsing”). Проверка заголовков файлов: Wget может считывать заголовки файлов (это доступно по протоколам HTTP и FTP) и сравнивать их с заголовкам ранее загруженных файлов, после чего может загрузить новые версии файлов. Благодаря этому при использовании Wget можно реализовывать зеркальное хранение сайтов или набора файлов на FTP. Wget разработан для медленных или нестабильных соединений: если во время загрузки возникнет проблема, то Wget будет пытаться продолжить загрузку файла. Если сервер, с которого загружается файл, поддерживает докачку файлоа, то Wget продолжит загружать файл именно с того места, где оборвалась загрузка.

Команда wget для загрузки нескольких файлов

Если вы хотите загрузить несколько файлов в одно и то же время, вы можете создать текстовый файл (например download.txt), где разместить все URL-адреса файлов, которые вы хотите загрузить. Для создания текстового файла выполните следующие действия:

touch download.txt

После этого вы можете отредактировать файл с nano и ввести все URL-адреса всех файлов, которые вы хотите загрузить:

nano download.txt
http://example.com/file1.zip

http://example.com/file2.zip

http://example.com/file3.zip

После сохранения файла, вы можете использовать опцию -i, чтобы загрузить все файлы, сохраненные в этом текстовом файле:

wget -i download.txt

Команды wget для windows

Давайте откроем небольшую инструкцию под названием — как скачать сайт целиком на windows!

Я уже писал ранее статью о командах wget и повторю здесь самые основные:

wget -r -k -l 7 -p -E -nc http://site.com/ — скачивает сайт целиком и полностью

-r указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
-k используется для того, чтобы wget преобразовал все ссылки
в скаченных файлах таким образом, чтобы по ним можно было переходить
на локальном компьютере (в автономном режиме).
-p указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).
-l определяет максимальную глубину вложенности страниц, которые wget
должен скачать (по умолчанию значение равно 5, в примере мы установили
7). В большинстве случаев сайты имеют страницы с большой степенью
вложенности и wget может просто «закопаться», скачивая новые страницы.
Чтобы этого не произошло можно использовать параметр -l.
-E добавлять к загруженным файлам расширение .html.
-nc при использовании данного параметра существующие файлы не будут
перезаписаны. Это удобно, когда нужно продолжить загрузку сайта,
прерванную в предыдущий раз.

Да кстати, иногда wget может ругаться на некоторые сертификаты(самоподписанные например) для этого существует команда: —no-check-certificate

Просто использование

*
Если вам нужно загрузить URL, то введите:
*
Но что же будет, если соединение медленное, а файл длинный? Есть возможность обрыва связи перед завершением загрузки. В этом случае Wget будет продолжать попытки нового соединения, пока не кончится число попыток (по умолчанию 20). Можно изменить это число, например до 45:
*
Теперь оставим Wget работать в фоновом режиме, а его сообщения будем записывать в журнал log. Долго набирать ––tries, так что используем -t.

Символ амперсанда в конце указывает командному интерпретатору продолжать работу, не дожидаясь завершения работы Wget. Чтобы программа делала повторы бесконечно – используйте -t inf.

*
Использовать FTP также очень просто. Wget берет на себя все заботы по авторизации.
*
Если вы укажите адрес папки, то Wget загрузит листинг этой папки (т.е. файлы и подкаталоги, содержащиеся в ней) и сконвертирует его в формат HTML. Например:

Расширенное использование

*
Если у Вас есть файл с URL, которые вы хотите загрузить, то используйте параметр -i:

Если вы укажете – вместо имени файла, то URL будут читаться из стандартного ввода (stdin).

*
Создать пятиуровневую копию сайта GNU со структурой папок оригинала, с одной попыткой загрузки, сохранить сообщения в gnulog:
*
Как и в примере выше, но с конвертированием ссылки в файлах HTML в локальные, для последующего автономного просмотра:
*
Загрузить одну страницу HTML и все файлы, требуемые для отображения последней (напр. рисунки, файлы каскадных стилей и т. д.). Также сконвертировать все ссылки на эти файлы:

Страница HTML будет сохранена в www.server.com/dir/page.html и рисунки, каскадные стили и прочее будет сохранено в папке www.server.com/, кроме случая, когда файлы будут загружаться с других серверов.

*
Как и в примере выше, но без папки www.server.com/. Также все файлы будут сохранены в подпапках download/.
*
Загрузить index.html с www.lycos.com, отображая заголовки сервера:
*
Сохранить заголовки в файл для дальнейшего использования.
*
Загрузить два высших уровня wuarchive.wustl.edu в /tmp.
*
Загрузить файлы GIF папки на HTTP сервере. Команда wget http://www.server.com/dir/*.gif не будет работать, так как маскировочные символы не поддерживаются при загрузке по протоколу HTTP. Используйте:

-r -l1 включает рекурсивную загрузку с максимальной глубиной 1. ––no-parent выключает следование по ссылкам в родительскую папку, имеющую верхний уровень, -A.gif разрешает загружать только файлы с расширением .GIF. -A “*.gif” также будет работать.

*
Предположим, что во время рекурсивной загрузки вам нужно было срочно выключить/перезагрузить компьютер. Чтобы не загружать уже имеющиеся файлы, используйте:
*
Если вы хотите указать имя пользователя и пароль для сервера HTTP или FTP, используйте соответствующий синтаксис URL:
*
Вы хотите, чтобы загружаемые документы шли в стандартный вывод, а не в файлы?

Если вы хотите устроить конвейер и загрузить все сайты, ссылки на которые указаны на одной странице:

8 ответов

199

Вот простой PS 3.0 и более поздний однострочный шрифт, который работает и не требует много PS barf:

Обратите внимание, что:

  • является псевдонимом для
  • Invoke-WebRequest возвращает HtmlWebResponseObject , который содержит много полезных свойств синтаксического анализа HTML, таких как ссылки, изображения, формы, входные поля и т. д., но в этом случае мы просто используем исходный контент
  • Содержимое файла сохраняется в памяти перед записью на диск, что делает этот подход непригодным для загрузки больших файлов.
  • В установках Windows Server Core вам необходимо написать это как

  • До 20 сентября 2014 года я предложил

    как ответ. Однако это не работает во всех случаях, так как оператор (который является псевдонимом для ) преобразует введите в Юникод.

Если вы используете Windows 7, вам необходимо установить версию 4 или новее в Windows Management Framework.

Вы можете обнаружить, что выполнение до значительно улучшит скорость загрузки с большими файлами; эта переменная контролирует, будет ли отображаться пользовательский интерфейс выполнения.

169

Если вам просто нужно получить файл, вы можете использовать DownloadFile метода WebClient :

Где представляет собой строку, представляющую URL-адрес файла, а представляет локальный путь, файл будет сохранен.

Обратите внимание, что должен содержать имя файла; он не может быть просто каталогом. 81

81

Существует в следующей версии PowerShell 3:

16

Это немного грязно, но есть это сообщение в блоге , которое дает вам инструкции по загрузке файлов.

В качестве альтернативы (и это я бы рекомендовал) вы можете использовать BITS:

Он покажет ход и загрузит файл в текущий каталог.

6

PowerShell V4 Однострочный:

или

Это в основном Уоррен (удивительный) V3 с одним слоем (спасибо за это!) — с небольшим изменением, чтобы заставить его работать в V4 PowerShell.

один лайнер Уоррена — который просто использует , а не — должен по-прежнему работать для V3 (по крайней мере, я думаю, не проверял его, хотя). Так или иначе. Но при попытке выполнить его в V4 PowerShell (как я и пытался) PowerShell не сможет разрешить как действительный командлет /программу.

Для тех, кого это интересует, то есть, как я взял из комментарий Боба в ответ на принятый ответ (спасибо, человек!) — потому что от PowerShell V4, и имеют псевдоним , по умолчанию . Таким образом, не может быть разрешен (а также не может работать здесь) .

4

Вот функция PowerShell, которая разрешает короткие URL-адреса перед загрузкой файла

Используйте его так, чтобы загрузить файл в текущую папку:

Или загрузить файл в указанную папку:

2

Следующая функция получит URL-адрес.

Некоторые комментарии:

  1. Последние 4 строки нужны только в том случае, если вы находитесь за аутентификационным прокси. Для простого использования отлично работает.
  2. Путь должен быть абсолютным, так как загрузка не выполняется в вашем текущем каталоге, поэтому относительные пути приведут к тому, что загрузка будет потеряна где-то.
  3. Раздел обрабатывает простой случай, когда вы просто хотите загрузить файл в текущий каталог, используя имя, указанное в URL-адресе.

1

Используйте оболочку bash для Windows 10, которая включает wget после установки функции Windows.

Как установить оболочку bash Ubuntu в Windows:

YouTube: запуск Bash на Ubuntu в Windows!

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:

You should see something like this:

Thanks to the “Path” environment variable, we know that we need to copy wget.exe to the 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:

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.

Add environment variable

We have correctly installed Wget. However, to be able to use it we always have to navigate to the installation folder of the program. This is cumbersome, so if we want to use Wget from any directory, we need to add an environment variable. With this in mind, please follow this path: Control Panel>System and Security>System>Advanced system settings

Enter in Advanced system settings

On the next screen, choose Environment Variables

Select Environment Variables

Next, we are going to create a new environment variable. With that intention, please select Path and press Edit.

Creating a new Environment Variable

On the next screen first select New, then Browse. You must select the address where the program is installed.

Setting the new path

Press ok in each of the open windows, and we can run Wget every time we open a Command Prompt. It doesn’t matter which directory we’re in. Let’s test the Wget command, downloading its executable for windows 10. With this intention, we enter this command in the CMD

Wget downloading a file

НАЙДЕННЫЕ ОШИБКИ

1.
Убедитесь, что поведение программы действительно ошибочно. Если Wget “вылетает”, то это ошибка. Если поведение Wget не соответствует документации, то это ошибка. Если все работает странно, но вы не уверены, как оно должно работать на самом деле, то это тоже может быть ошибкой.
2.
Попытайтесь повторить ситуацию с выдачей ошибки за минимальное количество действий.Не спешите отправлять .wgetrc, попробуйте проделать все действия, приведшие к ошибке с другим файлом настроек (или вообще без него).
3.
Запустите Wget с параметром -d и отправьте журнал (или его части). Намного легче отыскивать ошибки при наличии таких журналов.
4.
Если Wget выдал ошибку, то попытайтесь запустить его в отладчике, например "gdb `which wget` core" и введите "where" для получения обратной трассировки.

Installing Wget in Windows 10

Wget is a free tool and relatively simple to install in a Linux environment. Just type the appropriate commands to each distribution, and you’re done. However, when it comes to Windows, the situation changes. There are many installers and options that end up with installation errors. However, we’ve got this version that works properly. Go to this link and download version 1.11.4-1

Download 1.11.4-1 version

Next, we proceed to run the installer. Just double click and the wizard will start, press next to continue:

Wget setup wizard

Then accept the license terms, and click Next to continue the installation.

Accept the agreement of license

Select the folder where the program will be installed. Click next to continue the installation.

Select destination location

Next, select the components to install. To ensure proper operation, check both boxes and press Next to continue the installation.

Select the components to install

Next, you can create direct access to the application and its respective location

Adding a shortcut folder

You can install additional icons. Click Next to continue

Select additional tasks

Verify the installation options and press Install to finish the process.

Ready to install

Once the installation is finished, we will see the following screen.

successful installation

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:

To mirror the site and localise all of the urls:

To make a full offline mirror of a site:

To mirror the site and save the files as .html:

To download all jpg images from a site:

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 “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.

You can also save this to a log file by adding this option:

Enjoy using this powerful tool, and I hope you’ve enjoyed my tutorial. Comments welcome!

Ожидание между загрузкой файлов

При скачивании большого количества файлов, слишком частое обращение к удаленному серверу с вашей стороны может расцениваться сервером как DDoS атака. Опция -w позволяет задать количество секунд, которое требуется ожидать перед загрузкой очередного файла.

Некоторые веб-сайты умеют распознавать автоматические запросы к сайту, которые происходят с заданной периодичностью. Поэтому даже использование опции -w не всегда помогает. В таких случаях можно воспользоваться дополнительной опцией —random-wait. При ее использовании ожидание перед загрузкой очередного файла составляет случайное количество секунд от 0.5*wait до 1.5*wait. Пример использования (ожидание будет в диапазоне от 15 до 45 секунд):

Опции

Синтаксис опций очень свободный. У каждой опции, как правило есть как длинное, так и короткое имя. Их можно записывать как до URL, так и после. Между опцией и ее значением не обязательно ставить пробел, например вы можете написать -o log или -olog. Эти значения эквивалентны. Также если у опций нет параметров, не обязательно начинать каждую с дефиса, можно записать их все вместе: -drc и -d -r -c. Эти параметры wget тоже эквивалентны.

А теперь давайте перейдем к списку опций. У wget слишком много опций, мы разберем только основные.

  • -V (—version) — вывести версию программы
  • -h (—help) — вывести справку
  • -b (—background) — работать в фоновом режиме
  • -o файл (—out-file) — указать лог файл
  • -d (—debug) — включить режим отладки
  • -v (—verbose) — выводить максимум информации о работе утилиты
  • -q (—quiet) — выводить минимум информации о работе
  • -i файл (—input-file) — прочитать URL из файла
  • —force-html — читать файл указанный в предыдущем параметре как html
  • -t (—tries) — количество попыток подключения к серверу
  • -O файл (—output-document) — файл в который будут сохранены полученные данные
  • -с (—continue) — продолжить ранее прерванную загрузку
  • -S (—server-response) — вывести ответ сервера
  • —spider — проверить работоспособность URL
  • -T время (—timeout) — таймаут подключения к серверу
  • —limit-rate — ограничить скорость загрузки
  • -w (—wait) — интервал между запросами
  • -Q (—quota) — максимальный размер загрузки
  • -4 (—inet4only) — использовать протокол ipv4
  • -6 (—inet6only) — использовать протокол ipv6
  • -U (—user-agent)- строка USER AGENT отправляемая серверу
  • -r (—recursive)- рекурсивная работа утилиты
  • -l (—level) — глубина при рекурсивном сканировании
  • -k (—convert-links) — конвертировать ссылки в локальные при загрузке страниц
  • -P (—directory-prefix) — каталог, в который будут загружаться файлы
  • -m (—mirror) — скачать сайт на локальную машину
  • -p (—page-requisites) — во время загрузки сайта скачивать все необходимые ресурсы

Кончено это не все ключи wget, но здесь и так слишком много теории, теперь давайте перейдем к практике. Примеры wget намного интереснее.

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий