PDA

Показать полную графическую версию : wget


Vadikan
03-07-2005, 06:04
Домашняя страница (http://www.gnu.org/software/wget/wget.html)
wget для Windows (http://gnuwin32.sourceforge.net/packages/wget.htm)
Текущая версия: 1.11.4

wget - менеджер закачек, работающий из командной строки. Его можно использовать как для загрузки отдельных файлов (списков файлов), так и для закачки целых сайтов. Гибкие настройки (не уступающие GUI менеджерам закачек) обеспечиваются соответствующими параметрами командной строки.


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

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

WGet способен рекурсивно спускаться по структуре HTML-документа и дереву каталогов FTP-сервера, позволяя делать их копии на локальной машине. Это свойство полезно для зеркалирования серверов или для поиска в сети нужной информации в режиме WWW-робота.

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

WGet чрезвычайно хорошо работает при медленном или нестабильном коннекте, пытаясь скачать документ до тех пор, пока он не будет полностью скачан или не будет превышено определенное пользователем количество попыток. WGet пытается продолжить загрузку с того места, на котором она была прервана используя REST для FTP-серверов и Range для тех HTTP-серверов, которые его поддерживают.

По умолчанию WGet поддерживает прокси-серверы, которые могут разгрузить сеть, увеличить скорость загрузки и обеспечить доступ сквозь firewalls. WGet также опционально поддерживает пассивную загрузку для FTP-серверов.

Загрузка трассируется выводом на экран точек, каждая из которых соответствует определенному объему скачанной информации (1 Кб по умолчанию). Это значение может быть изменено пользователем.

Для большей части свойств доступно полное их конфигурирование пользователем путем использования опций командной строки или редактированием файла `.wgetrc'

Наконец, GNU Wget является свободно распространяемым программным продуктом. Это означает, что любой пользователь может работать с ним, распространять его и изменять в соответствии с GNU General Public License, опубликованной Free Software Foundation.

Справка:
wget --help
Документация: EN (http://www.gnu.org/software/wget/manual/) / RU (http://tinyurl.com/csudp).

Простые примеры использования:
Закачать файл по ссылке
wget URL
Продолжить закачку частично загруженных файлов; не перезаписывать существующие файлы; закачать файлы, ссылки на которые перечислены в текстовом файле list.txt; записать лог в log.txt
wget -c -nc -o log.txt -i list.txt

P.S. Для тех кто не может жить без графического интерфейса:
wget GUI 1 (http://www.jensroesner.de/wgetgui/)
wget GUI 2 (http://www.cybershade.us/winwget/)

Blast
24-10-2008, 10:29
Господа. Помогите нарисовать скрипт или batch с использованием wget для вот какой цели:
есть ftp
на нем определенное кол-во каталогов
в них подкаталоги, в которых файлы
необходимо скачать каталоги (с сохранением структуры) из корня, но только по времени модификации да еще и по условию, чтоб дата модификации была сегодня или вчера, а если в целевой папке (куда будет скачиваться) присутствуют каталоги, которые пытаемся скачать, то пропускать их
при этом еще нужно исключить подкаталоги по маске

Примерное содержимое нужных каталогов:

Если отталкиваться от примера, то мне нужно скачать каталог 23_10, модифицированный сегодня (или вчера), со всем содержимым, с сохранением структуры подкаталогов, но исключить подкаталог СС-22_10

__/22_10/
| |
| |_____/AA-22_10/
| | |
| | |________file1.ext
| | |________file2.ext
| |
| |_____/BB-22_10/
| | |
| | |________file1.ext
| | |________file2.ext
| |
| |_____/СС-22_10/
| |
| |________file1.ext
| |________file2.ext
|
|_/23_10/
| |
| |_____/AA-23_10/
| | |
| | |________file1.ext
| | |________file2.ext
| |
| |_____/BB-23_10/
| | |
| | |________file1.ext
| | |________file2.ext
| |
| |_____/СС-23_10/
| |
| |________file1.ext
| |________file2.ext

Vadikan
25-10-2008, 23:02
Blast, а локально уже существует аналогичная структура или нужно изначально выбрать только определенные каталоги?

Blast
31-10-2008, 18:27
сорри.. я пропустил ответ :)

Локально нет структуры, есть только папка назначения, в которую и нужно это дело скачать. По большому счету не обязательно это должен быть wget, мне просто показалось, что с ним должно быть проще чем с виндовым ftp. Конечно хотелось бы отделаться командной строкой так как выполнять задание нужно по расписанию.

Vadikan
01-11-2008, 01:07
Blast, в общем, я не знаю, как задать маску для папок. Ее можно задавать в виде черного и белого списка для имен/расширений файлов. Там есть опции Accept, Reject. Например,-A "*22_[0-9][0-9]*" -R .txtзагрузит все файлы от 22_00 до 22_99 кроме текстовых.

Для папок есть свои - Include, eXclude, но я не знаю, поддерживают ли там маски. В мануале написано, что нужно указывать пути относительно корня.
- I /files,/images -X /junk.

В общем, если структуру создать (один раз сделать зеркало), то дальше wget уже не будет загружать неизменившиеся файлы/папки. Команда примерно такая:

wget --ftp-user=user --ftp-password=password -l 2 -r -N -k host

-l 2 - два уровня (насколько я понял, из структуры)
-r - рекурсивно
-N - time-stamping. Если локальный файл отсутствует или старее того, что на сервере - новый файл загружается. Иначе нет.
-k - (необязательно) конвертирует ссылки в док-тах для локального просмотра
host - адрес

vovansa
01-08-2010, 23:53
с помощью wget файлы можно переименовать? Если возможно, то каким образом.

Vadikan
06-08-2010, 19:19
vovansa, насколько я знаю, нельзя. Можно только конвертировать ссылки для локального просмтора (-k). А что конкретно требуется?

cher
31-12-2011, 00:30
Дабы не создавать новую тему.... так и не "добил" закачку файлов с сервера.
к примеру имеем адрес http://yaidiot.ru - 20 папок с файлами.
Надо всё содержимое скачать в C:\2 без изменения структуры.
Добился только скачивание index.html :dont-know

Morpheus
31-12-2011, 02:58
cher, вы рекурсивную загрузку включили? Ссылки на главной странице на эти файлы есть? Если ага, то примерно так:
cd /d c:\2
wget -r -l0 -np -k http://yaidiot.ru
Не забывайте читать --help
http://s017.radikal.ru/i425/1112/c4/fd85330839bbt.jpg (http://radikal.ru/F/s017.radikal.ru/i425/1112/c4/fd85330839bb.jpg.html)

Если ссылок нет, придётся составлять список и уже его подпихивать wget'у.

cher
31-12-2011, 07:33
Morpheus, Спасибо. Всё получилось.
откуда русскоязычный хэлп?

Iska
31-12-2011, 11:00
cher, например, отсюда: Wget - Поиск в Google (http://www.google.ru/search?q=Wget) → Wget — Википедия (http://ru.wikipedia.org/wiki/Wget) → Перевод man wget на портале Opennet (http://www.opennet.ru/man.shtml?topic=wget&category=1&russian=0). Windows-версия утилиты лишь немного отстаёт от этого перевода.

Morpheus
31-12-2011, 11:26
cher, брал wget здесь (http://gnuwin32.sourceforge.net/packages/wget.htm) (Complete package, except sources).

cher
31-12-2011, 11:58
Morpheus, То же оттуда качал, но не ту ссылку. Спасибо! - теперь и в cmd -"русиш". :)

AlterEgoFS
06-03-2012, 23:40
когда скачиваю pdfcreator, пишу cmd
wget --output-document=pdfcreator.exe http://sourceforge.net/projects/pdfcreator/files/latest/download
и он скачивает pdfcreator.exe

когда скачиваю Inno Setup Unpacker, пишу тоже самое, но скачивается либо файл download на 17 кб, либо (если wget без параметров) - rops-3.0.53.935-disasm.rar, но там исходники какие то
какой юзерагент вписать, чтобы скачалось именно innounp036.rar ?

Максимов
04-06-2012, 03:55
Wget Как бы сохранить текст всего сайта состоящего их тысяч страниц в одном текстовом документе.
Поскажите команды которые надо ввести.




© OSzone.net 2001-2012