Перейти к содержимому

Рекурсивная загрузка что это

  • автор:

Использование утилиты wget: установка и основные команды

wget — это бесплатная утилита командой строки для неинтерактивной загрузки файлов из интернета. Поддерживает протоколы HTTP, HTTPS и FTP, а также получение файлов через HTTP-прокси.

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

wget может переходить по ссылкам на страницах HTML и XHTML и создавать локальные версии удаленных сайтов, полностью воссоздавая структуру каталогов исходного сайта, что иногда называют "рекурсивной загрузкой". При этом wget соблюдает стандарт исключения роботов (robots.txt). wget можно проинструктировать преобразовывать ссылки в загруженных HTML-файлах в локальные файлы для автономного просмотра.

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

Установка на разные операционные системы​

Windows

Утилита устанавливается в систему и работает через командную строку (cmd). Пользователям Windows рекомендуем работать в командной строке через Windows Terminal.

  1. Для установки утилиты рекомендуем сначала установить Chocolatey.

Chocolatey — это менеджер пакетов с интерфейсом командной строки и установщик программного обеспечения Windows на машинном уровне. Chocolately устанавливается через командную строку (cmd.exe) или через PowerShell.exe.

  • Установка в cmd.exe, запись в одну строку:

@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "[System.Net.ServicePointManager]::SecurityProtocol = 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

  • Установка в PowerShell.exe, запись в строку:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Подробная инструкция установки менеджера пакетов Chocolately: https://docs.chocolatey.org/en-us/choco/setup

  1. Завершив установку Chocolately, переходим к установке GNU Wget. Для этого нужно выполнить следующую команду из командной строки или из PowerShell:

choco install wget

Подробное описание утилиты GNU Wget для Chocolately: https://community.chocolatey.org/packages/Wget.

  1. Далее после успешной установки GNU Wget можно переходить в Windows Terminal для работы с утилитой через командную строку.

Linux

Если ваша операционная система — Ubuntu или другой дистрибутив Linux на базе Debian, который использует APT для управления пакетами, вы можете установить wget с помощью команды:

sudo apt-get install wget

Для других операционных систем смотрите документацию вашего пакетного менеджера для получения информации, как найти бинарный пакет wget и установить его.

Также вы можете установить wget из исходного кода с официального сайта GNU: https://www.gnu.org/software/wget.

Опции и команды​

wget: Options and commands

Синтакс​

wget [URL]. [option]..

Самый простой способ использования wget — указать ему местоположение файла для загрузки по HTTP. Например, чтобы загрузить файл с сайта http://website.com/files/file.zip, выполните следующую команду:

Так wget загрузит файл в рабочий каталог.

Существует множество опций, которые позволяют использовать wget различными способами и для различных целей. Они описаны ниже.

Как скачивать файлы в Debian с помощью curl и wget в командной строке

Работа в командной строке Linux дает вам больше гибкости и контроля по сравнению с графическим интерфейсом. Командная строка имеет множество применений и широко используется в администрировании серверов. Вы можете автоматизировать задачу с помощью командной строки, а также она использует меньше ресурсов, чем графический интерфейс. Загрузка файла с помощью командной строки также проще и быстрее, так как для этого требуется всего одна команда, по сравнению с графическим интерфейсом, который в основном требует длительной процедуры.

В этой статье мы расскажем, как загрузить файл из командной строки Linux с помощью двух различных утилит. Обе утилиты являются бесплатными и предназначены для неинтерактивной загрузки файлов из Интернета. Эти утилиты работают в фоновом режиме, даже когда вы не вошли в систему.

Метод №1 Загрузка файлов с помощью Curl

Curl — это утилита командной строки, которая используется для передачи файлов на сервер и с сервера. Мы можем использовать ее для загрузки файлов из Интернета. Она разработана таким образом, что вы можете запускать ее без участия пользователя. Она поддерживает различные протоколы, включая HTTP, HTTPS, TELNET, SCP, FTP и т.д. По умолчанию он не установлен в ОС Debian. Поэтому его необходимо сначала установить. Для этого выполните следующие шаги:

Установка Curl

Запустите приложение Терминал в Debian. Для этого перейдите на вкладку Деятельность в левом верхнем углу рабочего стола. Затем в строке поиска введите terminal. Когда появится значок Терминала, нажмите на него, чтобы запустить его.

В Терминале введите следующую команду для перехода в учётную запись суперпользователя.

Когда появится запрос на ввод пароля, введите пароль суперпользователя.

Затем выполните следующую команду в Терминале для установки утилиты Curl.

Установка curl в Debian

После завершения установки мы можем использовать Curl для загрузки файлов.

Общий синтаксис CURL

Чтобы загрузить файлы с помощью Curl, используйте следующий синтаксис в Терминале:

Используя параметр [options], вы можете указать различные функции, например, сохранить загрузку под определенным именем, возобновить загрузку, указать скорость передачи и многое другое.

Используя параметр [URL], вы можете указать URL удаленного сервера.

Загрузка и сохранение файла с использованием имени исходного файла

Чтобы загрузить и сохранить файл с тем же именем, что и имя исходного файла, используйте следующий синтаксис:

Примером может быть:

Это сохранит скачанный файл как metador.pdf.

Сохранение скачанного файла

Загрузка и сохранение файла с использованием имени исходного файла с помощью curl

Также можно указать «-remote-name» вместо -O, чтобы сохранить файл как имя удаленного файла.

Загрузка и сохранение файла с другим именем

Чтобы загрузить и сохранить файл с именем, отличным от имени исходного файла, используйте следующий синтаксис:

В параметре [имя файла] укажите новое имя для загруженного файла.

Примером может быть:

Это сохранит загруженный файл как metador_1275.pdf.

Загрузка и сохранение файла с другим именем

Скачивание нескольких файлов одновременно

Вместо того чтобы загружать несколько файлов по одному, вы можете загрузить их все одновременно, выполнив одну команду. Для одновременной загрузки нескольких файлов используйте команду -O, за которой следует URL-адрес файла, который вы хотите загрузить.

Для этого используйте следующий синтаксис:

Примером может быть:

Приведенная выше команда загрузит оба файла.

Загрузка нескольких файлов одновременно с помощью curl

Существует альтернативный способ сделать это. Укажите список URL-адресов в файле, затем используйте команду Curl вместе с xargs в следующем синтаксисе:

Примером этого может быть:

Наш файл files.txt содержит три URL:

Загрузить все URL из текстового файла

Приведенная выше команда Curl загрузит все URL, указанные в файле files.txt.

Результат загрузки файлов

Загрузка файлов с FTP-сервера

Мы также можем загрузить файлы с FTP-сервера с помощью утилиты Curl. Для этого выполните команду в Terminal, используя следующий синтаксис:

Параметры ftp_user и ftp_pass используются для указания учетных данных для входа на FTP. Однако их можно пропустить в случае анонимного FTP-соединения.

Загрузка файлов с помощью Wget

Подобно Curl, существует еще одна утилита командной строки Wget, которую можно использовать для загрузки файлов и контента из Интернета. Wget — это сочетание слов World Wide Web и get. Она поддерживает такие протоколы, как FTP, SFTP, HTTP и HTTPS. Кроме того, он поддерживает рекурсивную загрузку, что очень полезно, если вы хотите загрузить целый сайт для просмотра в автономном режиме или для создания резервной копии статического сайта.

Установка Wget

Если wget еще не установлен в вашей системе, вы можете установить его, выполнив следующие действия:

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

Когда появится запрос на ввод пароля, введите пароль суперпользователя.

Затем выполните следующую команду в Терминале для установки утилиты Wget.

установка wget в Debian

Общий синтаксис Wget

Чтобы загрузить файл с помощью Wget, используйте следующий синтаксис:

Загрузка и сохранение файла с использованием имени исходного файла

Использование приведенного выше синтаксиса для загрузки файла без какого-либо аргумента сохранит файл с тем же именем, что и исходный файл. Примером может служить загрузка файла metador.pdf.

Это сохранит загрузку как metador.pdf.

Скачайте и сохраните файл, используя имя исходного файла, с помощью wget

Загрузка и сохранение файла с другим именем

Чтобы загрузить и сохранить файл с именем, отличным от имени исходного файла, используйте следующий синтаксис:

Это сохранит загрузку как 1275_metador.

Скачайте и сохраните файл с другим именем с помощью wget

Загрузка файлов через FTP

Чтобы загрузить файлы с FTP-серверов, аутентифицированных пользователем, используйте следующий синтаксис:

Параметры ftp_user и ftp_pass используются для указания учетной записи FTP. Однако в случае анонимного FTP-соединения их можно пропустить.

Загрузка нескольких файлов

Чтобы загрузить несколько файлов с помощью Wget, создайте текстовый файл со списком URL файлов, а затем используйте следующий синтаксис для загрузки всех файлов одновременно.

Например, мы создали текстовый файл files.txt, который содержит два URL, как показано на рисунке ниже.

Файл, содержащий несколько URL

Затем мы выполнили следующую команду:

Загрузить все файлы из файла url

Выполнение приведенной выше команды автоматически загрузит оба URL, содержащихся в файле files.txt.

Приостановка и возобновление загрузки

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

Примером может служить возобновление ранее приостановленного файла metador.pdf путем выполнения следующей команды.

wget: Приостановка и возобновление загрузки

Рекурсивная загрузка файлов

Wget поддерживает рекурсивную загрузку файлов, что является его основным отличием от Curl. Функция рекурсивной загрузки позволяет скачивать все, что находится в указанном каталоге.

Чтобы рекурсивно загрузить веб-сайт или FTP-сайт, используйте следующий синтаксис:

В качестве примера можно привести загрузку следующего сайта целиком.

Рекурсивная загрузка файлов с помощью wget

Итак, в этой статье мы познакомились с двумя различными неинтерактивными утилитами командной строки, которые позволяют загружать файлы непосредственно из командной строки. Обе утилиты очень полезны и служат для одинаковых целей. Я надеюсь, что они будут полезны, когда вам понадобится скачать файл из Интернета.

Wget — Wget

GNU Wget (или просто Wget, ранее Geturl, также записываемый как его имя пакета, wget ) — это компьютерная программа, которая получает контент с веб-серверов. Это часть проекта GNU. Его название происходит от World Wide Web и get. Он поддерживает загрузку через HTTP, HTTPS и FTP.

. Его функции включают рекурсивную загрузку, преобразование ссылок для просмотра локального HTML в автономном режиме и поддержку прокси. Он появился в 1996 году, совпав с бумом популярности Интернета, что привело к его широкому использованию среди пользователей Unix и распространению большинства основных дистрибутивов Linux. Написанный на портативном C, Wget может быть легко установлен в любой Unix-подобной системе. Wget был перенесен на Microsoft Windows, Mac OS X, OpenVMS, HP-UX, MorphOS и AmigaOS. Начиная с версии 1.14, Wget может сохранять свои выходные данные в стандарте веб-архивирования WARC format.

Он использовался в качестве основы для графических программ, таких как GWget для рабочего стола GNOME.

Содержание

  • 1 История
  • 2 Возможности
    • 2.1 Надежность
    • 2.2 Рекурсивная загрузка
    • 2.3 Отсутствие интерактивности
    • 2.4 Переносимость
    • 2.5 Другие возможности
    • 3.1 Базовое использование
    • 3.2 Расширенные примеры
    • 4.1 Лицензия
    • 5.1 Исходный код
      • 5.1.1 Версия
      • 5.1.2 Популярные ссылки
      • 6.1 GWget
      • 6.2 Cliget
      • 6.3 wget2

      История

      Wget происходит от более ранней программы того же автора, названной Geturl, разработка которой началась в конце 1995 года. Название изменилось на Wget после того, как автору стало известно о более ранней программе Amiga, названной GetURL, написанной Джеймс Бертон в AREXX.

      Wget заполнил пробел в несовместимом программном обеспечении для загрузки из Интернета, доступном в середине 1990-х годов. Ни одна программа не может надежно использовать для загрузки файлов и HTTP, и FTP. Существующие программы либо поддерживали FTP (например, NcFTP и dl), либо были написаны на Perl, который еще не получил широкого распространения. Хотя Wget был вдохновлен функциями некоторых из существующих программ, он поддерживал как HTTP, так и FTP и мог быть построен с использованием только стандартных инструментов разработки, имеющихся в каждой системе Unix.

      В то время многие пользователи Unix боролись из-за чрезвычайно медленных университетов и дозвона Интернет соединений, что привело к растущей потребности в агенте загрузки, который мог бы справляться с временными сбои в сети без помощи оператора-человека.

      В 2010 году Челси Мэннинг использовала Wget для загрузки 250,000 США. дипломатические телеграммы и отчеты 500 000 армии, которые стали известны как журналы войны в Ираке и журналы афганской войны, отправленные на WikiLeaks.

      Характеристики

      Устойчивость

      Wget был разработан для обеспечения устойчивости к медленным или нестабильным сетевым соединениям. Если загрузка не завершена из-за проблемы сети, Wget автоматически попытается продолжить загрузку с того места, где она была остановлена, и повторять это, пока не будет получен весь файл. Это был один из первых клиентов, который использовал новый на тот момент Range HTTP-заголовок для поддержки этой функции.

      Рекурсивная загрузка

      Wget может дополнительно работать как веб-сканер, извлекая ресурсы связанных со страниц HTML и их последовательную загрузку, повторяя процесс рекурсивно до тех пор, пока не будут загружены все страницы или не будет достигнута максимальная глубина рекурсии, указанная пользователем. Загруженные страницы сохраняются в структуре каталогов, аналогичной структуре на удаленном сервере. Эта «рекурсивная загрузка» обеспечивает частичное или полное зеркальное отображение веб-сайтов через HTTP. Ссылки на загруженных HTML-страницах можно настроить так, чтобы они указывали на локально загруженный материал для автономного просмотра. При выполнении такого типа автоматического зеркального копирования веб-сайтов, Wget поддерживает Стандарт исключения роботов (если не используется опция -e robots = off ).

      Рекурсивная загрузка также работает с FTP, где Wget выдает команду LIST , чтобы найти, какие дополнительные файлы нужно загрузить, повторяя этот процесс для каталогов и файлов в одном указанный в верхнем URL. Подобные оболочки подстановочные знаки поддерживаются при запросе загрузки URL-адресов FTP.

      При рекурсивной загрузке через HTTP или FTP, Wget может быть проинструктирован проверять отметки времени локальных и удаленных файлов и загружать только удаленные файлы новее, чем соответствующие локальные. Это позволяет легко зеркалировать сайты HTTP и FTP, но считается неэффективным и более подверженным ошибкам по сравнению с программами, разработанными для зеркалирования с нуля, такими как rsync. С другой стороны, Wget не требует специального серверного программного обеспечения для этой задачи.

      Неинтерактивность

      Wget не интерактивен в том смысле, что после запуска он не требует взаимодействия с пользователем и не нуждается в управлении TTY, будучи возможность записывать свой прогресс в отдельный файл для последующей проверки. Пользователи могут запустить Wget и выйти из системы, оставив программу без присмотра. Напротив, большинство графического или текстового пользовательского интерфейса веб-браузеров требуют, чтобы пользователь оставался авторизованным и вручную перезапускал неудачные загрузки, что может стать большим препятствием, когда передача большого количества данных.

      Переносимость

      Написанный в очень портативном стиле C с минимальными зависимостями от сторонних библиотек, Wget требует немного больше, чем компилятор C и интерфейс, подобный BSD в TCP / IP сеть. Разработанная как программа Unix, вызываемая из оболочки Unix, программа была перенесена во множество Unix-подобных сред и систем, включая Microsoft Windows через Cygwin и Mac OS X. Он также доступен как родная программа Microsoft Windows в качестве одного из пакетов.

      Другие функции

      • Wget поддерживает загрузку через прокси, которые широко используются для обеспечения доступа в Интернет внутри корпоративных брандмауэров, а также для кэширования и быстрой доставки часто используемого контента.
      • Он использует постоянные HTTP-соединения, где они доступны. поддерживается в системах, которые включают соответствующие интерфейсы. поддерживается для зашифрованных загрузок с использованием OpenSSL или GnuTLS library.
      • Файлы размером более 2 ГиБподдерживаются в 32-битных системах, которые включают соответствующие
      • Скорость загрузки может быть ограничена, чтобы избежать использования всей доступной полосы пропускания.
      • Может сохранять выходные данные в стандарте веб-архивирования WARC формат, дедупликация из связанного файла CDX по мере необходимости.

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

      Базовое использование

      Типичное использование GNU Wget состоит из его вызова из командной строки, предоставления одного или нескольких URL-адресов в качестве аргументы.

      Более сложное использование включает автоматическую загрузку нескольких URL-адресов в иерархию каталогов.

      Дополнительные примеры

      Загрузите зеркало с ошибками для только что купленной книги, рекурсивно перейдите по всем локальным ссылкам и сделайте файлы пригодными для просмотра в автономном режиме. Используйте случайное ожидание до 5 секунд между каждой загрузкой файла и записывайте результаты доступа в «myLog.log». В случае сбоя повторите попытку до 7 раз с интервалом 14 секунд между попытками. (Команда должна быть в одной строке.)

      Собирайте только определенные ссылки, перечисленные построчно в локальном файле «my_movies.txt». Используйте случайное ожидание от 0 до 33 секунд между файлами и используйте 512 килобайт в секунду для регулирования полосы пропускания. В случае сбоя повторите попытку до 22 раз с интервалом 48 секунд между попытками. Отправлять без отслеживания пользовательский агент или HTTP-реферер на сайт с ограничениями и игнорировать исключения роботов. Поместите все захваченные файлы в локальный каталог «movies» и соберите результаты доступа в локальный файл «my_movies.log». Подходит для загрузки определенных наборов файлов без перегрузки сети:

      Вместо пустого referer и пользовательский агент использует реальный агент, который не вызывает сообщение «ERROR: 403 Forbidden» с ограниченного сайта. Также возможно создать файл.wgetrc, содержащий некоторые значения по умолчанию. Чтобы обойти сеансы с отслеживанием файлов cookie:

      Зеркальное отображение и преобразование CGI, ASP или PHP и других в HTML для просмотра в автономном режиме:

      Авторы и авторские права

      Написан GNU Wget Автор Hrvoje Nikšić при участии многих других людей, в том числе Дэна Харклесса, Яна Эбботта и Мауро Тортонези. Значительные вклады указаны в файле AUTHORS, включенном в дистрибутив, а все остальные задокументированы в журналах изменений, также включенных в программу. В настоящее время Wget поддерживается Джузеппе Скривано, Тимом Рюсеном и Даршитом Шахом.

      Авторские права на Wget принадлежат Фонду свободного программного обеспечения, чья политика требует передачи авторских прав для всех нетривиальных материалов. к программному обеспечению GNU.

      Лицензия

      GNU Wget распространяется в соответствии с условиями Стандартной общественной лицензии GNU, версии 3 или более поздней, с особым исключением , который позволяет распространять двоичные файлы , связанные с библиотекой OpenSSL. Ниже приводится текст исключения:

      Дополнительное разрешение в соответствии с разделом 7 GNU GPL версии 3

      Если вы изменяете эту программу или любую покрываемую работу, связывая или комбинируя ее с библиотекой OpenSSL проекта OpenSSL (или модифицированная версия этой библиотеки), содержащий части, на которые распространяются условия лицензий OpenSSL или SSLeay, Free Software Foundation предоставляет вам дополнительное разрешение на передачу полученной работы. Соответствующий исходный код для такой комбинации, не являющейся исходной, должен включать исходный код используемых частей OpenSSL, а также исходный код покрытой работы.

      Ожидается, что условие исключения будет удалено, как только Wget будет изменен, чтобы также связать с библиотекой GnuTLS.

      документация Wget в форме справочного руководства Texinfo распространяется в соответствии с условиями GNU Free Documentation License, версия 1.2. или позже. man-страница, обычно распространяемая в Unix-подобных системах, автоматически генерируется из подмножества руководства Texinfo и подпадает под условия той же лицензии.

      Разработка

      Wget разрабатывается открытым способом, большинство проектных решений обычно обсуждается в общедоступном списке рассылки, за которым следят пользователи и разработчики. Отчеты об ошибках и исправления передаются в один и тот же список.

      Вклад источника

      Предпочтительный метод внесения вклада в код и документацию Wget — это обновление исходного кода в виде текстовых патчей, генерируемых diff полезность. Патчи, предназначенные для включения в Wget, отправляются в список рассылки, где они проверяются сопровождающими. В исходные тексты устанавливаются исправления, которые проходят тщательную проверку сопровождающими. Инструкции по созданию исправлений, а также рекомендации по стилю изложены в вики проекта.

      Исходный код также можно отслеживать через удаленный репозиторий управления версиями, в котором хранится история изменений, начиная с версии 1.5. 3 выпуск. В репозитории сейчас работает Git. До этого исходный код размещался на (в обратном порядке): Bazaar, Mercurial, Subversion и через CVS.

      Выпуск

      Когда в процессе разработки накапливается достаточное количество функций или исправлений ошибок, Wget публикуется для широкой публики через FTP-сайт GNU и его зеркала. Поскольку приложение полностью управляется добровольцами, нет никакого внешнего давления с целью выпуска релиза, равно как и обязательных сроков выпуска релизов.

      Релизы пронумерованы как версии в формате major.minor [.revision], например Wget 1.11 или Wget 1.8.2. Увеличение номера основной версии означает большие и, возможно, несовместимые изменения в поведении Wget или радикальную переработку кода. Увеличение младшего номера версии означает добавление новых функций и исправлений ошибок. Новая ревизия указывает на выпуск, который по сравнению с предыдущей ревизией содержит только исправления ошибок. Нулевой номер версии опущен, что означает, что, например, Wget 1.11 совпадает с 1.11.0. Wget не использует соглашение о четных и нечетных выпусках, популярное в Linux.

      Популярные ссылки

      Wget появляется в выпуске фильма Columbia Pictures 2010 года, Социальная сеть. Главный герой, частично основанный на соучредителе Facebook Марке Цукерберге, использует Wget для объединения фотографий студентов из различных справочников Гарвардского университета.

      Известные выпуски

      Следующие выпуски представляют собой важные вехи в развитии Wget. Функции, перечисленные рядом с каждым выпуском, отредактированы для краткости и не представляют собой исчерпывающую информацию о выпуске, которая доступна в файле NEWS, распространяемом с Wget.

      • Geturl 1.0, выпущенный в январе 1996 года, был первым общедоступным выпуском. Первое объявление на английском языке можно отнести к новостному сообщению Usenet, которое, вероятно, относится к Geturl 1.3.4, выпущенному в июне.
      • Wget 1.4.0, выпущенный в ноябре 1996 года, был первой версией, в которой использовалось это имя. Wget. Это также был первый выпуск, распространяемый на условиях GNU GPL, Geturl распространялся без специальной гарантиилицензии.
      • Wget 1.4.3., выпущенная в феврале 1997 г., была первой версией, выпущенной как часть проекта GNU с авторскими правами, закрепленными за FSF.
      • Wget 1.5.3, выпущенная в сентябре 1998 г., была вехой в развитии программы популярность. Эта версия была связана со многими дистрибутивами на основе Linux, которые открыли программу для гораздо более широкой аудитории.
      • Wget 1.6, выпущенный в декабре 1999 года, включал множество исправлений ошибок для (к тому времени устаревшего) Версия 1.5.3, во многом благодаря усилиям Дэна Харклесса.
      • Wget 1.7, выпущенный в июне 2001 г., представил поддержку SSL, куки и постоянный подключения.
      • Wget 1.8, выпущенный в декабре 2001 г., добавил регулирование полосы пропускания, новые индикаторы выполнения и обход гиперссылки графа.
      • в ширину. Wget 1.9, выпущенный в октябре 2003 г., включал экспериментальные Поддержка IPv6 и возможность отправлять данные POST на HTTP-серверы.
      • Wget 1.10, выпущенный в июне 2005 г., представил поддержку больших файлов, IPv6 в системах с двойным семейством: NTLM авторизация и улучшения SSL. Сопровождение взял на себя Мауро Тортонези.
      • Wget 1.11, выпущенный в январе 2008 г., перенесен на версию 3 Стандартной общественной лицензии GNU и добавлена ​​предварительная поддержка Content- Заголовок Disposition , который часто используется сценариями CGI для указания имени файла для загрузки. В код аутентификации HTTP также были внесены улучшения, связанные с безопасностью. Мика Коуэн взял на себя сопровождение проекта.
      • Wget 1.12, выпущенный в сентябре 2009 г., добавил поддержку синтаксического анализа URL-адресов из CSS содержимого в Интернете и для обработки интернационализированных идентификаторов ресурсов.
      • Wget 1.13, выпущенный в августе 2011 г., поддерживает HTTP / 1.1, устраняет некоторые проблемы с переносимостью и по умолчанию использует библиотеку GnuTLS для безопасных соединений.
      • Wget 1.14, выпущенный в августе 2012 г., улучшенный поддержка TLS и добавлена ​​поддержка RFC2617 Digest Access Authentication.
      • Wget 1.15, выпущенный в январе 2014 г., добавлено — только https и поддержка Perfect-Forward Secrecy.
      • Wget 1.16, выпущенный в октябре 2014 г., изменил вывод индикатора выполнения по умолчанию, закрыл CVE -2014-4877, добавил поддержку libpsl для проверки доменов cookie и представил —start -pos, чтобы разрешить запуск загрузки с указанной позиции.
      • Wget 1.17, выпущенный в ноябре 2015 г., удален пассивный переход FTP к активному откату из соображений конфиденциальности, добавлена ​​поддержка ort для FTPS и для —if-modified-Since.
      • Wget 1.18, выпущенный в июне 2016 г., разрешил проблему CVE -2016-4971 и добавил «—bind Параметры -dns-address «и» —dns-servers «.
      • Wget 1.19, выпущенный в феврале 2017 г., добавил новые параметры для обработки файла Metalink; В версии 1.19.1 добавлен параметр —retry-on-http-error для повторной загрузки, если веб-сервер отвечает заданным кодом состояния HTTP.
      • Wget 1.20, выпущенный в ноябре 2018 г., добавлено — -retry-on-host-error для большей надежности и —accept-regex , —reject-regex параметры для рекурсивного поиска по FTP.

      Связанные работы

      Снимок экрана GWget 1.0.4 в Fedora v12 с установленным GNOME v2.28.2

      GWget

      GWget — это бесплатное программное обеспечение с графическим интерфейсом пользователя для Wget. Он разработан Давидом Седеньо Фернандесом и является частью проекта GNOME. GWget поддерживает все основные функции, которые выполняет Wget, а также параллельные загрузки.

      Cliget

      Cliget — это загрузчик дополнений для Firefox с открытым исходным кодом, использующий Curl, Wget и Aria2. Его разработал Зайд Абдулла.

      wget2

      В настоящее время разрабатывается GNU Wget2. Он будет иметь много улучшений по сравнению с Wget, в частности, во многих случаях Wget2 загружается намного быстрее, чем Wget1.x из-за поддержки следующих протоколов и технологий:

        , ,
      • параллельные соединения,
      • использование HTTP-заголовка If-Modified-Since, .

      См. Также

      • Портал бесплатного программного обеспечения с открытым исходным кодом

      Русский мануал к программе WGet

      Русский мануал WGet

      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 продолжит загружать файл именно с того места, где оборвалась загрузка.

      OПЦИИ

      Основные параметры

      Параметры сообщений

      Параметры загрузки

      Если в текущей папке уже есть файл с именем ls-lR.Z, то Wget проверит, соответствует ли данный файл загружаемому (не по размеру!), и если это так, то отправит запрос на сервер на продолжение загрузки файла с того же места, где оборвалась загрузка в прошлый раз.Помните, что при обрыве связи Wget повторяет попытки дозагрузки самостоятельно и без параметра -c, и только когда он «сдастся» и завершит свою работу, то для возобновления загрузки файла будет нужен этот параметр.
      Без указания опции -c предыдущий пример приведет к загрузке указанного файла заново с конечным именем ls-lR.Z.1, никак не трогая уже имеющийся ls-lR.Z.
      Начиная с версии 1.7 при указании параметра -c если файл на сервере имеет равный или меньший, чем у локального файла, размер, то Wget не будет ничего загружать и отобразит соответствующее сообщение.
      Однако, при использовании -c любой файл на сервере, имеющий больший размер, чем локальный файл, будет рассматриваться, как недокачанный. При этом будет загружено и записано в конец файла только "(длина(удал.файл) - длина(локал.файл))" байт. Это может пригодиться, елси вам нужно загрузить новые сообщения из какого-либо журнала (log).
      При этом если загружаемый файл больше потому, что он изменился, то вы получите поврежденный файл (т.е. файл может в итоге получиться совершенно отличным от оригинала). Нужно быть особенно внимательным при использовании -c вместе с -r, так как каждый измененный файл может быть кандидатом на «незавершенную загрузку».
      Вы также получите поврежденный файл если ваш сервер прокси HTTP работает глупо и при обрыве соединения пишет в файл сообщение »transfer interrupted». Вероятно, в следующих версиях Wget сам будет исправлять это.
      Помните, что -c работает только с серверами FTP и HTTP , поддерживающими заголовки "Range" (т.е. докачку файлов). ––progress=type Индикатор прогресса загрузки и его тип. Возможные значения: «dot» и «bar».По умолчанию используется «bar». Указание опции ––progress=bar приведет к прорисовке красивого индикатора из символов ASCII (как »термометр»). Если стандартный выход не TTY , то будет использован «dot».Укажите ––progress=dot чтобы переключится на тип «dot». Прогресс загрузки будет отмечаться добавлением в полосе точки или знака равно, каждый символ представляет одинаковое количество данных.При использовании этого типа, вы можете указать его стиль — dot:style. Если стиль "default", то каждый символ будет представлять 1 Kб, 10 символов в кластере и 50 в строке. Стиль "binary" имеет более »компьютерный» вид — 8Kб в символе, 16 символов в кластере и 48 символов в строке (получается строка на 384 Kб). Стиль"mega" используется для загрузки больших файлов — каждый символ представляет 64Kб, 8 символов в кластере и 48 символов в строке (получается 3 Mб на строку).
      Вы можете определить стиль по умолчанию, используя команду "progress" в .wgetrc. Если вы хотите, чтобы тип индикатора «bar» использовался всегда (а не только при выводе в stdout), то укажите ––progress=bar:force. -N ––timestamping Включить сравнение по дате. -S ––server-response Отображать заголовки, отправляемые серверам HTTP и запросы, отправляемые серверам FTP . ––spider Установка поведения Wget как «паука», т. е. Wget не будет загружать файлы, а только будет проверять их наличие. Так можно проверять закладки и ссылки сайта. Например:

      Wget не содержит все возможности «настоящих пауков» для WWW . -T seconds ––timeout=seconds Время ожидания в секундах. По умолчанию время ожидания равно 900 с (15 мин). Установка значения в 0 отменяет проверку времени ожидания.Пожалуйста, не снижайте значение времени ожидания, если Вы точно не знаете, что именно делаете. -w seconds ––wait=seconds Пауза в секундах между несколькими загрузками (в т.ч. повторами). Это снижает загруженность сервера. Чтобы указать значение в минутах, используйте "m", в часах —"h", в днях — "d" после числа.Указание большого значения этого параметра полезно, если сеть нестабильна (например при обрывах модемной связи). ––waitretry=seconds Устанавливает паузу только между повторами оборвавшихся загрузок. Wget будет ждать 1 секунду после первого обрыва, 2 секунды после второго обрыва загрузки того же файла, и т.д. — до максимума, который указывается в секундах. Например, при значении данного параметра, равного 10, Wget будет ждать в общем (1 + 2 + … + 10) = 55 секунд для каждого файла.Это значение указывается по умолчанию в файле wgetrc. ––random-wait Некоторые серверы, совершая формирование файлов журналов с паузами запросов файлов, могут определить рекурсивную загрузку файлов — сканирование роботами, такими, как Wget. Этот параметр устанавливает время между запросами, варьируя паузы со временем, рассчитываемым от 0 до 2*wait (секунд), где wait указано параметром -w для маскировки Wget.Нельзя забывать, что исходный код Wget доступен, и пэтому даже эту маскировку при желании можно вычислить. -Y on/off ––proxy=on/off Поддержка сервера прокси. Включена по умолчанию, если прокси определен. -Q quota ––quota=quota Квота на размер загружаемых файлов. Указывается в байтах (по умолчанию), в килобайтах Кб (если в конце k) или в мегабайтах Мб (если в конце m).При исчерпании квоты текущий файл загружается до конца, то есть квота не работает при загрузке одного файла. Например, если вы исполниет wget -Q10k ftp://wuarchive.wustl.edu/ls-lR.gz, то файл ls-lR.gz будет полностью загружен. Также все указанные в командной строке файлы будут обязательно загружены, в отличие от списка файлов в одном файле или как при рекурсивной загрузке.Указание 0 или inf отменит квоту.

      Параметры загрузки папок

      Если вы хотите просто избавиться от структуры папок, то вы можете заменить этот параметр на -nd и -P. В отличие от -nd, -nd работает с подкаталогами — например, при -nH ––cut-dirs=1 подкаталог beta/ запишется, как xemacs/beta. -P prefix ––directory-prefix=prefix Определяет начальную папку, в которой будет сохранена структура папок сайта (или просто файлы). По умолчанию этот параметр равен . (текущая папка).

      Параметры HTTP

      Netscape 4.x. Файл находится в

      /.netscape/cookies.txt. Mozilla и Netscape 6.x. Mozilla хранит cookies в cookies.txt, расположенном где-то в

      /.mozilla, в папке вашего профиля. Полный путь обычно заканчивается чем-то вроде

      /.mozilla/default/some-weird-string/cookies.txt. Internet Explorer. Чтобы экспортировать cookie для Wget, выберите «Файл», «Импорт и Экспорт», в мастере выберите «Экспорт файлов cookie». Проверено в Internet Explorer 5; возможно не будет работать в ранних версиях. Другие обозреватели. Параметр ––load-cookies будет работать с cookie в формате Netscape, который поддерживается Wget. Если вы не можете использовать параметр ––load-cookies, то все равно есть выход. Если ваш обозреватель поддерживает Запишите имя и значение cookie и вручную укажите Wget отправку этих cookie:

      ––save-cookies file Сохранить cookie из file в конце сессии. Устаревшие cookie не сохраняются. ––ignore-length Некоторые серверы HTTP (точнее, скрипты CGI ) отправляют заголовки "Content-Length", которые указывают Wget, что загружено еще не все. И Wget загружает один документ несколько раз.С этим параметром, Wget будет игнорировать заголовки "Content-Length". ––header=additional-header Определяет additional-header, отправляемый серверу HTTP . Он должен содержать : и символы после него.Вы можете определить несколько дополнительных заголовков через использование ––header несколько раз.

      Указание пустой строки в значении заголовка очистит все определенные пользователем до этого заголовки. ––proxy-user=user ––proxy-passwd=password Определяет имя пользователя user и пароль password для авторизации сервере прокси. Будет использован тип авторизации "basic". ––referer=url Добавляет заголовок `Referer: url‘ в запрос HTTP . Используется при загрузке страниц, которые передаются правильно только если сервер знает, с какой страницы вы пришли. -s ––save-headers Сохранять заголовки, отправляемые серверам HTTP . -U agent-string ––user-agent=agent-string Идентифицироваться, как agent-string при запросе на HTTP сервер.Протокол HTTP позволяет определять себя использованием заголовка агента. Wget по умолчанию идентифицируется, как Wget/version, где version — это версия Wget.Некоторые серверы выдают требуемую информацию только для обозревателей, идентифицирующихся как "Mozilla" или Microsoft "Internet Explorer". Этот параметр позволяет обмануть такие серверы.

      Параметры FTP

      По умолчанию использование символов маски разрешено, если URL содержит такие символы.Вы можете также взять URL в кавычки. Это сработает только на серверах Unix FTP (и эмулирующих выход Unix "ls"). ––passive-ftp Включает пассивный режим FTP , когда соединение инициируется клиентом. Используется при наличии firewall. ––retr-symlinks При рекурсивной загрузке папок FTP файлы, на которые указывают символические ссылки, не загружаются. Данный параметр отключает это.Параметр ––retr-symlinks работает сейчас только для файлов, не для папок.Помните, что этот параметр не работает при загрузке одиночного файла.

      Параметры рекурсивной загрузки

      Параметр -r включает загрузку по умолчанию, параметр -nd отключает создание папок.При указанном параметре ––delete-after будет игнорироваться параметр ––convert-links. -k ––convert-links После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.Каждая ссылка изменяется одним из двух способов:

      * Ссылки на файлы, загруженные Wget изменяются на соответствующие относительные ссылки.Например: если загруженный файл /foo/doc.html, то ссылка на также загруженный файл /bar/img.gif будет выглядеть, как ../bar/img.gif. Этот способ работает, если есть видимое соотношение между папками одного и другого файла. * Ссылки на файлы, не загруженные Wget будут изменены на абсолютные адреса этих файлов на удаленном сервере.Например: если загруженный файл /foo/doc.html содержит ссылку на /bar/img.gif (или на ../bar/img.gif), то ссылка в файле doc.html изменится наhttp://host/bar/img.gif. Благодаря этому, возможен автономный просмотр сайта и файлов: если загружен файл, на который есть ссылка, то ссылка будет указывать на него, если нет — то ссылка будет указывать на его адрес в интернет (если такой существует). При конвертировании используются относительные ссылки, значит вы сможете переносить загруженный сайт в другую папку, не меняя его структуру.Только после завершения загрузки Wget знает, какие файлы были загружены. Следовательно, при параметре -k конвертация произойдет только по завершении загрузки. -K ––backup-converted Конвертировать ссылки обратно — убирать расширение .orig. Изменяет поведение опции -N. -m ––mirror Включить параметры для зеркального хранения сайтов. Этот параметр равен нескольким параметрам: -r -N -l inf -nr. Для неприхотливого хранения зеркальных копий сайтов вы можете использовать данный параметр. -p ––page-requisites Загружать все файлы, которые нужны для отображения страниц HTML . Например: рисунки, звук, каскадные стили.По умолчанию такие файлы не загружаются. Параметры -r и -l, указанные вместе могут помочь, но т.к. Wget не различает внешние и внутренние документы, то нет гарантии, что загрузится все требуемое.Например, 1.html содержит тег "<IMG>", со ссылкой на 1.gif, и тег "<A>", ссылающийся на внешний документ 2.html. Страница 2.html аналогична, но ее рисунок — 2.gifи ссылается она на 3.html. Скажем, это продолжается до определенного числа.Если будет дана команда:

      то 1.html, 1.gif, 2.html, 2.gif и 3.html загрузятся. Как видим, 3.html без 3.gif, т.к. Wget просто считает число прыжков, по которым он перешел, доходит до 2 и останавливается. А при параметрах:

      Все файлы и рисунок 3.gif страницы 3.html загрузятся. Аналогично

      приведет к загрузке 1.html, 1.gif, 2.html и 2.gif. Чтобы загрузить одну указанную страницу HTML со всеми ее элементами, просто не указывайте -r и -l:

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

      И в завершении, нужно сказать, что для Wget внешняя ссылка — это URL , указанный в тегах "<A>", "<AREA>" и "<LINK>", кроме "<LINK REL="stylesheet">".

      Параметры запрета/разрешения рекурсивной загрузки

      Но теперь лучшим параметром для загрузки одной страницы полностью считается ––page-requisites. -H ––span-hosts Разрешает посещать любые сервера, на которые есть ссылка. -L ––relative Следовать только по относительным ссылкам. При этом параметре файлы с других серверов точно не будут загружаться. -I list ––include-directories=list Список папок, разделенных запятыми, из которых разрешено загружать файлы. Элементы списка list могут содержать символы масок. -X list ––exclude-directories=list Список папок, разделенных запятыми, исключаемых для загрузки (см. Ограничение по папкам). Элементы списка list могут содержать символы масок. -np ––no-parent Не подниматься выше начального адреса при рекурсивной загрузке.

      ПРИМЕРЫ ИСПОЛЬЗОВАНИЯ

      Примеры разделены на три категории согласно их сложности.

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

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

      * Теперь оставим Wget работать в фоновом режиме, а его сообщения будем записывать в журнал log. Долго набирать ––tries, так что используем -t.

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

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

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

      Если вы укажете — вместо имени файла, то 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 :

      * Вы хотите, чтобы загружаемые документы шли в стандартный вывод, а не в файлы?

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

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

      * Вы также хотите, чтобы ссылки конвертировались в локальные. Но после прочтения этого руководства, вы знаете, что при этом не будет работать сравнение по времени. Укажите Wget оставлять резервные копии HTML файлов перед конвертацией. Команда:

      * А если не работает локальный просмотр файлов HTML с расширением, отличным от .html, например index.cgi, то нужно передать команду на переименование всех таких файлов (content-type = text/html) в имя.html.

      С краткими аналогами команд:

      ФАЙЛЫ

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

      Вы можете отправлять отчеты об ошибках в GNU Wget на адрес <" [email protected] "> (на английском).
      Перед отправкой:

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

      СМ. ТАКЖЕ

      GNU Info для wget.

      АВТОРЫ

      ПЕРЕВОД

      АВТОРСКИЕ ПРАВА

      Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
      2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
      Это свободное программное обеспечение; условия копирования ищите в исходных текстах. НЕ существует никаких гарантий; программа НЕ предназначена для ПРОДАЖ.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar