В следующей статье мы рассмотрим Wget. Надо сказать, что GNU Wget - это бесплатный инструмент что позволяет загружать контент с веб-серверов простым и быстрым способом. Его название происходит от World Wide Web (w) и слово get (на английском получить). Это имя означает: получить из WWW.
Сегодня существуют десятки приложений для очень эффективной загрузки файлов. Большинство из них основаны на веб-интерфейсах и интерфейсах рабочего стола и разработаны для всех операционных систем. Однако в Gnu / Linux (также есть версия для Windows) Здесь мощный менеджер загрузок файлов wget. Считается самым мощным из существующих загрузчиков. Поддерживает такие протоколы, как http, https и FTP.
Скачивание файлов с помощью 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 не ограничивается только загрузкой файловМы сможем скачать полную страницу. Нам просто нужно будет написать что-то вроде:
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. Кто хочет может проконсультироваться онлайн-руководство чтобы ознакомиться со всеми возможностями, которые предлагает нам этот замечательный менеджер загрузок.
Насчет "Скачать по расширению" перестал читать. Вы не можете скачать то, чего не знаете. Если запрошенный каталог не допускает перечисление файлов и не имеет индекса (и оба должны происходить одновременно), то, что вы говорите, невозможно сделать. Какой уровень.
Привет, Рубен, незнание - это немного дерзко.
То, что вы комментируете, можно сделать с помощью простой команды в 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.
Думаю у вас ошибка, в первых двух строках одна и та же команда.
Большое спасибо, очень хороший урок!