Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152

Открыть новую тему     Написать ответ в эту тему

GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[ UNIX Shell ] || [ Рекурсивная загрузка веб-сайтов ] — родительские ветки.
 
GNU Wget

GNU Wget — это свободная неинтерактивная утилита для скачивания файлов по HTTP, HTTPS, FTP и FTPS (и только), обладающая самым базовым функционалом загрузки одиночных файлов и рекурсивной загрузки сайтов (HTTP) и директорий (FTP).
 

| Офсайт | Википедия | Фрешмит | Опен-хаб (бывш. Охлох) | Мануал | Ман | Ман (русск., устар.) | --help (русск.) |

 
Где взять.
Под GNU — уже стоит. Под FreeBSD — есть в портах. Под [Mac] OS X — собрать ванильный.  
Под Windows есть варианты: Cygwin | GNUWin32 (учитывайте зависимости) | Wget + OpenSSL by GetGnuWin32  | by TumaGonx Zakkum (он же osspack32 и The Moluccas  |  by Jernej Simoncc (32 и 64 бит отдельные пакеты).
 
Литература.
Popkov. Параметры программы wget
В. А. Петров. Wget — насос для Интернета
 
FAQ
 
Q: Можно ли простым перебором загрузить страницы (допустим) с первой по сотую, если их адреса:  
http://example.org/index?page=1
http://example.org/index?page=2
...
http://example.org/index?page=100
A: Вэ-гет не умеет делать инкрементальный перебор, поскольку это умеет делать любая командная оболочка. На Баше это делается так:
$ wget -E "http://example.org/index?page="{1..100}
Еще раз отметьте, {1..100} — это синтаксическая конструкция Баша, а не Вэ-гета. Эквивалентной этой будет команда:
$ for i in {1..100}; do wget -E "http://example.org/index?page=$i"; done
Или для cmd.exe:
for /l %i in (1,1,100) do wget -E "http://example.org/index?page=%i"
 
Q: А как собственно сайт целиком-то загрузить?
A: $ wget -mpEk "http://example.org"
Это, наверное, самый ходовой набор ключей, но вам, может быть, более подойдут другие. Что значит каждый — легко узнать в мане.
 
Q: Я хочу загрузить с сайта, требующего авторизации. Что делать?
A: Проще всего кинуть куда-нибудь файл с нужными (но лишние не помешают) куками в нетскэйповском формате, затем воспользоваться ключом --load-cookies.
$ wget --load-cookies cookies.txt бла-бла # файл cookies.txt в текущей директории
У Файрфокса куки в требуемом виде можно получить, воспользовавшись расширениями «Export Cookies» либо «Cookie.txt»; у Хрома — «Cookie.txt export»
 
Q: Не-ASCII символы сохраняются в именах файлов как %D0%A5%D1%83%D0%B9 (или того хуже), хотя локаль юникодная.
A: Укажите ключ --restrict-file-names=nocontrol,unix или --restrict-file-names=nocontrol,windows соответственно.
Если у вас Windows и локаль не юникодная — используйте вариант от Alex_Piggy с ключом --local-filesystem-encoding=ENCODING, где ENCODING — имя кодировки локали в терминах iconv. Текущую локаль cmd.exe можно проверить при помощи команды chcp. Для русской кириллицы в Windows обычно используется CP866.
 
Q: Известно, что можно приказать Вэ-гету обновить ранее загруженный файл, если на сервере новее или иного размера (ключ --timestamping, он же -N). Можно приказать учитывать только дату, но не размер (--timestamping --ignore-length). А можно ли учитывать только размер, но не дату?
A: При помощи одного только Wget’а — нет.  Возможна обработка получаемых заголовков файла при помощи средств командной оболочки. Пример для cmd.exe.
 
Q: Можно ли приказать Вэ-гету докачать файл, но только если он не изменился.
A: Нет, нельзя. Сочетание ключей -cN (--continue --timestamping), как можно было бы предположить, нужного эффекта не даст — «докачает» даже если файл изменился — получите в итоге мусор.
 
Q: Можно ли при рекурсивной загрузке ограничится только ссылками, содержащими параметр lang=ru, т.е. грузить:
http://example.org/index?lang=ru
http://example.org/page?id=1001&lang=ru
http://example.org/file?id=60&lang=ru&format=dvi
и не грузить:
http://example.org/index?lang=en
http://example.org/about?lang=fr
и т.д.
A: Для версий < 1.14 нет такой возможности.  
Общий вид URI: <протокол>://<логин>:<пароль>@<хост>:<порт>/<путь>?<параметры>#<якорь>. Так вот ключи -I (--include-directories) и -X (--exclude-directories) относятся только к пути, но не к параметрам.
В версиях > 1.14 возможно при использовании ключей --accept-regex / --reject-regex. Пример: --reject-regex "lang=[^r][^u]"
 
Q: Можно ли средствами Вэ-гета ограничить перечень загружаемых файлов по дате модификации (новее чем, старше чем)?
A: Нет такой возможности.
 
Q: Можно ли при рекурсивной или множественной загрузке произвольно задать целевые пути и/или имена файлов на основе пути/имени по-умолчанию (применить транслитерацию, отбросить хвостовую часть) или хотя бы независимо (сгенерировать случайно или по счетчику)?
A: Нет.
 
Q: То — нельзя, это — невозможно. Почему все так плохо?
A: Потому что Вэ-гет на настоящий момент — базовая программа, предоставляющая только самый базовый функционал. Если вы уперлись в потолок ее возможностей, просто смените ее на другой инструмент. Из неинтерактивных свободных программ наиболее функциональными будут:
aria2c — для загрузки одиночных файлов по HTTP(S), FTP, бит-торренту;
httrack — для рекурсивной загрузки («зеркалирования») веб-сайтов;
lftp — для работы по FTP, FTPS, SFTP, FISH, а также с листингами, отдаваемыми по HTTP(S) (пример).
curl — для работы с одиночными файлам по HTTP(S), FTP(S) и многими другими протоколами на более низком уровне.
wput — клон wget для аплоада файлов на удаленные FTP(S) сервера.
axel — клон wget для многопоточной загрузки одиночных файлов по протоколам HTTP(S) и FTP(S). Порты для Windows: 2.4, 2.16.1
 
Разное.
GUI для Wget’а
 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.

Всего записей: 1528 | Зарегистр. 17-06-2003 | Отправлено: 13:39 08-11-2003 | Исправлено: mithridat1, 08:56 13-02-2019
aChikatillo

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
я бы, в таком случае, читала мануал про команды -N -Rlist -Alist

Что мне даст -Rlist -Alist? -N уже используется, все бы было хорошо если бы точно знали сколько новых файлов на сервере...
 
Добавлено:
Не буду наверное заморачиватся а буду делать бекап в конце недели когда будут созданы все 10 архивов  на фтп

Всего записей: 245 | Зарегистр. 18-10-2007 | Отправлено: 17:43 22-09-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
aChikatillo

Цитата:
Что мне даст -Rlist -Alist?

если известно расширение то можно записать -A  *.zip
и будет качать все зипы  -N , только новые
 

Цитата:
Не буду наверное заморачиватся  

зря, это ж интересно, кто кого ) осталось чуть чуть покопацца
 
 

Цитата:
буду делать бекап в конце недели  

вот, весьма рекомендую планировщик nnCron и бекапер nnBackup
http://nncron.ru/index_ru.shtml
тут
http://forum.ru-board.com/topic.cgi?forum=5&topic=6505&glp#lt
 


----------
жительница мульки

Всего записей: 1288 | Зарегистр. 20-12-2007 | Отправлено: 13:06 24-09-2010 | Исправлено: sis_terr, 13:17 24-09-2010
kilserg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Приветствую всех!
Скажите, если у меня wget рекурсивно что-то качает с опцией конвертирования ссылок для локального просмотра, то можно ли его досрочно остановить так, чтобы ссылки на закачанные файлы сконвертились?

Всего записей: 12 | Зарегистр. 20-10-2009 | Отправлено: 12:50 28-09-2010
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день  
@kilserg
В wget 1.11.4 такой остановки не было. Он реагировал только на Ctrl-C/Ctrl-Break, но при этом не конвертировались ссылки. Если мне нужно было досрочно оборвать рекурсию с конвертацией, я ставит в опциях "-T 30" (--timeouts) и просто (отключал модем)/(разрывал связь)  в момент когда он начинает обрабатывать очередной файл. При этом минут 5-10 wget пробует оставшиеся ссылки, после чего конвертирует то, что уже скачал. Или, если примерно знал сколько есть времени, использовал -Q(--quota).
Про 1.12 практически ничего сказать не могу. В исходниках ничего не нашел.  

Всего записей: 1693 | Зарегистр. 07-08-2002 | Отправлено: 12:24 29-09-2010
BumerangII



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте,
 
есть желание автоматизировать загрузку обновления с
Ссылка на сегодня это файл 6162xdat.exe, он физически лежит по ссылке Ссылка, почти каждый день меняется имя файла.
Может есть способ сделать это через wget, без ввода каждый раз ссылки вручную

Всего записей: 88 | Зарегистр. 14-12-2005 | Отправлено: 22:30 09-11-2010 | Исправлено: BumerangII, 22:30 09-11-2010
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BumerangII
Я с фтп-шника ихнего обновляюсь

Код:
 
wget -O xdat.exe -e "glob=on" -e "remove_listing=on" ftp://ftp.nai.com/pub/antivirus/superdat/intel/????xdat.exe
 

Всего записей: 1644 | Зарегистр. 08-12-2004 | Отправлено: 22:37 09-11-2010 | Исправлено: igor_andreev, 22:38 09-11-2010
BumerangII



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
спасибо не знал про FTP

Всего записей: 88 | Зарегистр. 14-12-2005 | Отправлено: 22:48 09-11-2010 | Исправлено: BumerangII, 23:23 09-11-2010
loder82

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто разбирается, может поможет скачать тему с этого форума http://forum.skoda-club.ru/viewtopic.php?f=61&t=19326. Какие команды нужно прописать в Wget чтобы скачать эту тему и просматривать её без интернета постранично?

Всего записей: 2 | Зарегистр. 11-11-2010 | Отправлено: 14:18 11-11-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
loder82
$ for i in `seq 0 15 585`; do wget -p "http://forum.skoda-club.ru/viewtopic.php?f=61&t=19326&start=$i&view=print"; done
Как-то так. HTML-файлы потом неплохо бы переименовать.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 03:35 12-11-2010
andrewtishkin



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Существует ли параметр, который запретит wget-у переходить по redirect-ам?

Всего записей: 773 | Зарегистр. 28-08-2008 | Отправлено: 07:35 12-11-2010
alyuka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите с решением проблемы
 
wget -qO - http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool|grep -ioe 'setup.*exe'|wget -O ~/soft/win/av/kvrt.exe  -i -
 
возвращает из страницы только путь до файла, без "http://", как бы дописать вначало этот http, чтоб wget принял url ?

Всего записей: 610 | Зарегистр. 13-07-2007 | Отправлено: 13:54 20-11-2010
Victor_VG



Tracker Mod
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alyuka
 
А что, кавычки в командах уже отменили? Или в Редмонде новый стандарт UNIX-команд ввели - НЕИСПОЛНИМЫЙ ПО ВИНЕ ОПЕРАТОРА?

----------
Жив курилка! (Р. Ролан, "Кола Брюньон")

Всего записей: 23953 | Зарегистр. 31-07-2002 | Отправлено: 17:19 20-11-2010
Alexpro1965

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как сделать, чтоб закаченный файл имел дату времени закачки, а не оригинальное время файла откуда качается.

Всего записей: 62 | Зарегистр. 04-05-2006 | Отправлено: 18:27 20-11-2010
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как бы дописать вначало этот http, чтоб wget принял url ?

wget --base=http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/ .....
 
Добавлено:

Цитата:
чтоб закаченный файл имел дату времени закачки, а не оригинальное время файла откуда качается.

В 1.12.1 есть опция --no-use-server-timestamps

Всего записей: 1644 | Зарегистр. 08-12-2004 | Отправлено: 20:56 20-11-2010
alyuka



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
чёт я не понял о чём ты )
там где хттп ссылка целиком есть выдирается и качается всё нормально

Всего записей: 610 | Зарегистр. 13-07-2007 | Отправлено: 01:01 22-11-2010
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
andrewtishkin

Цитата:
Существует ли параметр, который запретит wget-у переходить по redirect-ам?

`--max-redirect=NUMBER'
     Specifies the maximum number of redirections to follow for a
     resource.  The default is 20, which is usually far more than
     necessary. However, on those occasions where you want to allow
     more (or fewer), this is the option to use.
При --max-redirect=0 Wget будет воспринимать только прямые ссылки на файлы.  
 

Всего записей: 1693 | Зарегистр. 07-08-2002 | Отправлено: 10:33 25-11-2010
aChikatillo

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Немного поменялась задача:
 
На  сервере в корневом каталоге содержиться папка(внутри архивы) с названием вида ЧислоМесяцГод, например: 03122010. Эту папку нужно копировать на локальный сервер в каталог \backup.На следующий день нужно скопировать содержимое 04122010, а каталог 03122010 нужно удалить на  сервере, на локальном хранить последние 5 копий. Как проверять на закрытие в случае отсутствия инета , в имени файлов каждый раз будет дата другая...
 
 
Понял- как копировать папки
Не понял - как удалить скаченную папку с сервера
Понял -Проверять в случае отсутствия инета проверяю на количество скаченных файлов
Удалять последние 5 копий нужно каким нибудь bat скриптом,  если есть под рукой дайте код,,

Всего записей: 245 | Зарегистр. 18-10-2007 | Отправлено: 11:35 03-12-2010 | Исправлено: aChikatillo, 14:00 03-12-2010
spv12345

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как программой wget вычислить - какой размер занимает сайт,
и какое общее количество файлов на сайте?
 
 
Добавлено:
Как создать дерево файлов сайта программой wget?
Что бы выборочно скачивать файлы с этого сайта wget_ом.
 
пример дерева файлов сайта:
http://www.site.com/index.html
http://www.site.com/catalog/index.html
http://www.site.com/catalog/file.html
http://www.site.com/ipg/picture.jpg
http://www.site.com/upload/image.iso

Всего записей: 2 | Зарегистр. 17-10-2010 | Отправлено: 19:42 03-12-2010 | Исправлено: spv12345, 19:46 03-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spv12345
У сабжа есть режим «spider». Файлы загружаться не будут, а лог писаться будет.
 
$ wget -mp --spider -o example.com.log http://example.com/
 
Ложка дегтя в том в том, что лог wget'а human-readable, т.е. его анализ — задача нетривиальная. Но не невозможная. И, кстати, довольно популярная.
 
Добавлено:
aChikatillo
wget — не ftp-клиент, и тем более не инструмент для бэкапа.
Используйте специализированные решения, даже если задача примитивна.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 23:43 03-12-2010 | Исправлено: ASE_DAG, 23:46 03-12-2010
spv12345

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
>wget — не ftp-клиент, и тем более не инструмент для бэкапа.
>Используйте специализированные решения, даже если задача примитивна.
aChikatillo, можно поподробнее про специализированные решения,
речь идет о какой команде?

Всего записей: 2 | Зарегистр. 17-10-2010 | Отправлено: 05:13 04-12-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152

Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru