В следующей статье мы рассмотрим Wget. Надо сказать, что GNU Wget - это бесплатный инструмент что позволяет загружать контент с веб-серверов простым и быстрым способом. Его название происходит от World Wide Web (w) и слово get (на английском получить). Это имя означает: получить из WWW.
Сегодня существуют десятки приложений для очень эффективной загрузки файлов. Большинство из них основаны на веб-интерфейсах и интерфейсах рабочего стола и разработаны для всех операционных систем. Однако в Gnu / Linux (также есть версия для Windows) Здесь мощный менеджер загрузок файлов wget. Считается самым мощным из существующих загрузчиков. Поддерживает такие протоколы, как http, https и FTP.
Индекс
- 1 Скачивание файлов с помощью wget
- 1.1 Скачать файл
- 1.2 Скачивание по разным протоколам
- 1.3 Скачать по расширению
- 1.4 Эта команда не всегда работает, так как некоторые серверы могли заблокировать доступ к wget.
- 1.5 Скачать список файлов
- 1.6 Перезапустить загрузку
- 1.7 Добавить логи о скачивании
- 1.8 Ограничить скорость загрузки
- 1.9 Скачать с логином и паролем
- 1.10 Попытки скачивания
- 2 Загрузите сайт с помощью wget
Скачивание файлов с помощью wget
Скачать файл
Самый простой способ использовать этот инструмент - скачать с указанием файла Что мы хотим:
wget http://sitioweb.com/programa.tar.gz
Скачивание по разным протоколам
Как хороший менеджер закачек, можно запрашивать более одной загрузки за раз. Мы даже можем использовать разные протоколы в одном порядке:
wget http://sitioweb.com/programa.tar.gz ftp://otrositio.com/descargas/videos/archivo-video.mpg
Скачать по расширению
Другой способ скачать несколько файлы с одинаковым расширением, будет использоваться подстановочный знак звездочки:
wget<code class="language-bash" data-lang="bash">-r -A.pdf</code>http://sitioweb.com/*.pdf
Эта команда не всегда работает, так как некоторые серверы могли заблокировать доступ к Wget.
Скачать список файлов
Если мы хотим загрузить файлы, которые мы находим, нам нужно будет только сохранить их URL в файле. Мы создадим список под названием files.txt а название списка мы укажем команде. Необходимо размещать только один URL в строке внутри files.txt.
Команда, которую мы будем использовать для загрузки созданного списка и который мы сохраним в файлах .txt, будет следующей:
wget -i archivos.txt
Перезапустить загрузку
Если по какой-либо причине загрузка была прервана, мы сможем продолжить загрузку с того места, где она была остановлена используя вариант c с помощью команды wget:
wget -i -c archivos.txt
Добавить логи о скачивании
Если мы хотим получить журнал о загрузке, чтобы контролировать любой инцидент на нем нам нужно будет добавить -o вариант как показано ниже:
wget -o reporte.txt http://ejemplo.com/programa.tar.gz
Ограничить скорость загрузки
При очень долгих загрузках мы можем ограничить скорость загрузки. Таким образом мы предотвратим загрузку всей полосы пропускания на время загрузки:
wget -o /reporte.log --limit-rate=50k ftp://ftp.centos.org/download/centos5-dvd.iso
Скачать с логином и паролем
Если мы хотим загрузить с сайта, где требуется имя пользователя / пароль, нам нужно будет использовать только следующие параметры:
wget --http-user=admin --http-password=12345 http://ejemplo.com/archivo.mp3
Попытки скачивания
По умолчанию, эта программа делает 20 попыток установить соединение и начать загрузку, на очень насыщенных сайтах возможно, что даже при 20 попытках это не удалось. С вариант t увеличивается до большего количества попыток.
wget -t 50 http://ejemplo.com/pelicula.mpg
Загрузите сайт с помощью wget
Wget man help
Wget не ограничивается только загрузкой файловМы сможем скачать полную страницу. Нам просто нужно будет написать что-то вроде:
wget www.ejemplo.com
Скачать веб-сайт и его дополнительные элементы
с вариант p мы также загрузим все дополнительные элементы, необходимые на странице такие как таблицы стилей, встроенные изображения и т. д.
Если мы добавим вариант r se будет скачивать рекурсивно до 5 уровней с сайта:
wget -r www.ejemplo.com -o reporte.log
Преобразуйте ссылки в местные
По умолчанию ссылки на сайте указывают на адрес всего домена. Если мы загружаем сайт рекурсивно, а затем изучаем его в автономном режиме, мы можем использовать опция convert-links что превратит их в местные ссылки:
wget --convert-links -r http://www.sitio.com/
Получите полную копию сайта
У нас будет возможность получить полную копию сайта. В –Зеркальный вариант то же самое, что и использование параметры -r -l inf -N что указывает на рекурсию на бесконечном уровне и получение исходной отметки времени каждого загруженного файла.
wget --mirror http://www.sitio.com/
Преобразовать расширения
Если вы загрузите весь сайт для просмотра в автономном режиме, некоторые загруженные файлы могут не открываться из-за таких расширений, как .cgi, .asp или .php. Тогда можно указать с помощью –Html-extension параметр Все файлы преобразуются в расширение .html.
wget --mirror --convert-links --html-extension http://www.ejemplo.com
Это просто общие рекомендации чем вы можете сделать с Wget. Кто хочет может проконсультироваться онлайн-руководство чтобы ознакомиться со всеми возможностями, которые предлагает нам этот замечательный менеджер загрузок.
7 комментариев, оставьте свой
Насчет "Скачать по расширению" перестал читать. Вы не можете скачать то, чего не знаете. Если запрошенный каталог не допускает перечисление файлов и не имеет индекса (и оба должны происходить одновременно), то, что вы говорите, невозможно сделать. Какой уровень.
Привет, Рубен, незнание - это немного дерзко.
То, что вы комментируете, можно сделать с помощью простой команды в Google:
тип файла: pdf сайт: ubunlog.com
В этом примере в этом блоге нет PDF-файла, но измените домен в конце на веб-сайт, который вы предпочитаете, и вы увидите, насколько легко увидеть все файлы определенного типа Интернета.
Хорошего дня.
Но wget не подключается к Google, чтобы найти PDF-файлы по URL-адресу. Веб-каталог должен быть открыт, и должна быть индексная страница, созданная mod_autoindex или подобным, как говорит Рубен Карденал.
«Эта команда не всегда работает, так как некоторые серверы могли заблокировать доступ к wget».
Эта поправка была внесена в эту статью, потому что я не согласен с ней (хотя технически можно заблокировать определенные веб-агенты для запросов HTTP-заголовка и вернуть сообщение 403 «не разрешено»), и я объясню, почему:
Все веб-серверы Apache (а я говорю о значительном проценте серверов) по умолчанию разрешают использование глобусов (отличная статья в Википедии, читайте: https://es.wikipedia.org/wiki/Glob_(inform%C3%A1tica) .
На практике это означает, что, как указывает г-н. Рубен (и он прав), ЕСЛИ НЕТ ФАЙЛА, НАЗЫВАЕМОГО "index.php" или "index.html" (или даже просто названного "index"), сервер незаметно вернет список файлов и каталогов (конечно, в форме HTML-страницы с информацией в виде веб-ссылки для каждого файла). БОЛЬШИНСТВО ВЕБ-СЕРВЕРОВ ОТКЛЮЧАЕТ ЭТУ ФУНКЦИЮ С ПОМОЩЬЮ ФАЙЛА .htacces (строго говоря, Apache2) из соображений безопасности.
Вот универсальность wget (посмотрите его историю, снова в Википедии, ту, которую вы знаете больше всего: https://es.wikipedia.org/wiki/GNU_Wget ) для анализа или «синтаксического анализа» указанной информации и извлечения только тех расширений, которые мы запрашиваем.
Теперь, если это не сработает по той или иной причине, мы можем попробовать другие расширенные функции wget, я цитирую прямо на английском:
Вы хотите загрузить все GIF-файлы из каталога на HTTP-сервере. Вы пробовали wget http://www.example.com/dir/*.gif’, но это не сработало, потому что HTTP-поиск не поддерживает GLOBBING (я поставил заглавные буквы). В этом случае используйте:
wget -r -l1 –нет родителя -A.gif http://www.example.com/dir/
Более многословно, но эффект тот же. «-r -l1» означает рекурсивное извлечение (см. Рекурсивная загрузка) с максимальной глубиной 1. «–no-parent» означает, что ссылки на родительский каталог игнорируются (см. Ограничения на основе каталога), а «-A». gif 'означает загрузку только файлов GIF. '-A «* .gif»' тоже сработало бы.
ЕСЛИ ВЫ ЗАПУСТИТЕ ПОСЛЕДНИМ СПОСОБОМ, wget создаст для нас папку с запрошенным веб-адресом в папке по умолчанию, в которой мы работаем, и при необходимости создаст подкаталоги, в которых разместит, например, изображения .gif, которые мы запрос.
--------
ОДНАКО, если по-прежнему невозможно получить только определенные типы файлов (например, * .jpg), нам придется использовать параметр «–page-Requisites», который загружает все внутренние элементы html-страницы (изображения, звуки, css и т. д.) вместе с самой html-страницей ("–page-Requisites" может быть сокращено до "-p"), и это будет эквивалентно загрузке чего-то вроде "mhtml" https://tools.ietf.org/html/rfc2557
Надеюсь, эта информация будет вам полезна.
Спасибо за заметки. Salu2.
Думаю у вас ошибка, в первых двух строках одна и та же команда.
Большое спасибо, очень хороший урок!