Страница 37 / 118

Wget: [Назад] 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 [Вперед]

GaDiNa



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

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

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

 
Где взять.
Под GNU — уже стоит. Под FreeBSD — есть в портах. Под [Mac] OS X — собрать ванильный.  
Под Windows есть варианты: 0) Cygwin,  1) GNUWin32 (учитывайте зависимости), 2) Wget + OpenSSL by GetGnuWin32, 3) by Bart Puype  4) by osspack32, 5) by Alex_Piggy, 6) 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 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) и многими другими протоколами на более низком уровне.
 
Разное.
GUI для Wgetа
 

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

Всего записей: 1503 | Зарегистр. 17-06-2003 | Отправлено: 12:39 08-11-2003 | Исправлено: VictorVG2, 22:57 06-01-2016
BakLAN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Far`ом не пользуюсь, посему его компиляцией не интересовался. А вот Mplayer под винду компилю. Это что-то с чем-то. Сначала собрать вкуче все пакеты GCC+MSYS. Потом несметное кол-во пакетов кодеков/декодеров для Mplayer. Каждый пакет отконфигурить, потом отконфигурить сам Mplayer. Если конфигурить в static-режиме, походу появляется несметное кол-во проблем: то один пакет не видится Mplayer`ом, то пакет не хочет компилиться в static`е. И всё это под Винду. Бобма. Но плеер мой любимый. Поскольку других не пользую, приходится компилить самому. Если кому интересно, в соответствующей ветке есть ссыла на мой GCC-билд. ^)
P.S. А вообще я не программер.

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 23:47 06-11-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
BakLAN
 
Да, с Win развлечёшся. В демонёнке с ним проще - сначала из портов собирается он сам, потом из портов используя те же исходники собираются кодеки. Готово. Просто, быстро, надёжно.

Отправлено: 04:04 07-11-2009
Alemleon

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

Всего записей: 1 | Зарегистр. 13-11-2009 | Отправлено: 10:28 13-11-2009
iglezz

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

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 12:54 13-11-2009
TkaRik

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Видать, это обычное дело - заниматься "любовью" с программами в мире *nix...
Задача - каждый день качать файлик с фтп, создал батник, запихнул его в планировщик заданий и все вроде бы хорошо, да вот только этот чудо-wget никак сам не хочет закрываться после полной загрузки файла, только процесс завершать.. А так как все это дело происходит на сервере - это абсолютно неприемлемый вариант..
Достаточно вбить wget ftp://ftp.drweb.com/pub/drweb/cureit/launch.exe чтобы понять о чем я говорю - окно никогда не закроется. Если качать какой-нибудь файлик по HTTP, то вроде бы никаких проблем нет, wget сам добровольно закрывается.
Подскажите, в чем проблема? (думается мне, что в "чудо"-wget'е, но хотелось бы ошибаться).

Всего записей: 7 | Зарегистр. 13-11-2009 | Отправлено: 12:03 21-11-2009 | Исправлено: TkaRik, 12:08 21-11-2009
dimbat



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

Цитата:
в чем проблема? (думается мне, что в "чудо"-wget'е, но хотелось бы ошибаться)

Да, ошибаетесь. Закачиваю именно Cureit, именно с фтп, на w2k3 по два раза в день автоматом. Процесс завершается каждый раз стабильно.

----------
In Search We Trust

Всего записей: 986 | Зарегистр. 23-08-2003 | Отправлено: 13:11 21-11-2009 | Исправлено: dimbat, 13:12 21-11-2009
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TkaRik
Стоит попробовать другую версию.  
И не мешало бы озвучить используемую -- похожий баг видел года полтора назад у того wget`а, который под винду.

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 13:12 21-11-2009
dimbat



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TkaRik
Попробуйте Wget 1.12.1 и попробуйте еще вот так ftp://anonymous:[email protected]/pub/drweb/cureit/cureit.exe, хотя не принципиально. Работает стабильно и со старыми версиями и с любым синтаксисом адреса.

----------
In Search We Trust

Всего записей: 986 | Зарегистр. 23-08-2003 | Отправлено: 13:26 21-11-2009
TkaRik

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Версия последняя из шапки (также пробовал с оффсайта), сейчас попробую предложенную вами. Спасибо за ответы, думал не дождусь
P.S. Все тоже самое, висит окно Wget [100%].... и все, хоть тресни, хоть лопни. Проверял и на w2003 и на XP - все одинаково. Пробовал и из батника и из ярлыка запускал - все одно..
 

Всего записей: 7 | Зарегистр. 13-11-2009 | Отправлено: 13:55 21-11-2009 | Исправлено: TkaRik, 14:13 21-11-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
TkaRik
 
Значит у Вас именно неверно система работает. У меня лично на ХР Wget закачав что-то вежливо докладывает что всё сделано и закрывается.

Отправлено: 15:03 21-11-2009
TkaRik

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG, это абсолютно исключено. С самого рождения на компах стоит каспер под паролем, базы всегда актуальные, все работают только под обычными пользователями и т.д. Да и не та это программа, чтобы сильно зависеть от окружения...
Приду еще дома на Win 7 проверю, но, думаю, там будет тоже самое. Ладно, пожалуй, придется искать альтернативу, кстати, может кто знает что-нибудь? Навороты никакие даром не нужны, лишь бы качать по ftp умела..

Всего записей: 7 | Зарегистр. 13-11-2009 | Отправлено: 15:08 21-11-2009 | Исправлено: TkaRik, 15:14 21-11-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
TkaRik
 
Исключение бывают тогда когда комп по питанию вырублен. А вот Каспер может блокировать завершение процесса wget на время проверки. Такая причина в голову не приходит - блокировка процесса другим, более приоритетным? Или Вы считаете что Святой Билл не ошибается а в мире UNIX все только и делают что каждый день ядро перебирают? Да, по мене надобности мы ставим заплаты, но ядро обычно перебирается очень редко, да и UNIX пакеты не столь часто обновляются чтобы только этим и заниматься - там ошибки вылавливают ещё на стадии разработки, что и даёт возможность не тратить зря время на установку заплат коли надо. У Вас лично искажённые рекламой из Редмонда предположения, сочувствую Вам.

Отправлено: 15:21 21-11-2009
TkaRik

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG, блокировка процесса каспером, ага, wget такая большая программа, что каспер ее проверяет аж несколько минут. Да и приоритет тут явно непричем. Тем более, у каспера он вполне обычный (читай "средний"). Да и на сервере нет касперского (на нем вообще антивируса нет, ибо по программе Первой Помощи антивируса для сервера нет, да и не нужен он там), так что он не при чем. Сейчас попробовал ftp.exe - скачался файл нормально, но в конце прога призадумалась и через минуту выдала сообщение, что свзяь разорвана... Вообще, дело возможно в школьном интернете, он проходит через систему фильтрации в москве, возможно в этом проблема, буду проверять.
Спасибо всем, кто пытался помочь. Тем, кто пытался наставить на "путь "истинный"" - тоже спасибо

Всего записей: 7 | Зарегистр. 13-11-2009 | Отправлено: 15:57 21-11-2009 | Исправлено: TkaRik, 16:04 21-11-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
TkaRik
 
Тогда смотрите настройки канала. Где-то сидит ошибка. можно конечно попробовать ключики --connect-timeout=SECS --read-timeout=SECS --dns-timeout=SECS использовать. Может помочь. Список ключей ловите:
 
Ключи вызова Wget 1.12.1

Отправлено: 16:26 21-11-2009 | Исправлено: Victor_VG, 16:27 21-11-2009
TkaRik

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG похоже, ваши ключики помогли... сейчас wget загрузил файл, подумал немного (я указал по 5 секунд везде), потом появилось что-то вроде retrying, потом еще что-то промелькнуло и в итоге окно завершилось. Видать программа чего-то ждала, наступил таймаут, она опять подключилась к серверу, поняла, что уже все скачала и вышла
Спасибо за помощь, удачи.
P.S. Проверил теперь уже на сервере на последней версии wget'a, тоже все ок: процесс завершается как раз через пять секунд после полной загрузки файла.

Всего записей: 7 | Зарегистр. 13-11-2009 | Отправлено: 16:46 21-11-2009 | Исправлено: TkaRik, 16:47 21-11-2009
f_serg



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

Цитата:
появилось что-то вроде retrying, потом еще что-то промелькнуло и в итоге окно завершилось. Видать программа чего-то ждала, наступил таймаут, она опять подключилась к серверу, поняла, что уже все скачала и вышла

В протоколе FTP для ввода команд и для передачи файлов используются разные сессии. Если ты сидишь за файрволом, то после определенного таймаута неактивности файрвол командную сессию блокирует. wget после загрузки файла пытается в командной сессии сделать "QUIT" и не может. Примерно так.

----------
Serg

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 09:27 23-11-2009
igor_andreev

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

Цитата:
Если ты сидишь за файрволом, то после определенного таймаута неактивности файрвол командную сессию блокирует. wget после загрузки файла пытается в командной сессии сделать "QUIT" и не может.

Истина где-то наверное рядом У меня на ADSL wget тоже с ftp.mcafee.com закачивает файл 100% и ждет до посинения, если я дома. Раньше нормально было, второй месяц только фигня эта пошла. Если я тут-же с этого же ноутбука переключаюсь на другого провайдера - все пучком, закачивает файл и закрывается. И, если ноут на работу принести(там третий провайдер) - тоже нормально все. У прова, надо полагать, с настройками хитро админы поковырялись.

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 09:49 23-11-2009 | Исправлено: igor_andreev, 09:52 23-11-2009
CoolMan



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогите с вгетом, скачал, распаковал, запускаю - говорит хочу libeay32.dll.
Скачал LIBEAY32.DLL v0.9.4.0, кинул к ВГЕТу, запускаю - говорит

Цитата:
Точка входа в процедуру DES_ecd_encrypt ненайдена в библиотеке DLL LIBEAY32.DLL

Что делать ?

Всего записей: 45 | Зарегистр. 13-06-2004 | Отправлено: 10:15 10-12-2009
makarei



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CoolMan
 
Скачав:
 
http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip
 
И кинув ему:
 
http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-dep.zip
 
Все будет работать.

Всего записей: 934 | Зарегистр. 27-03-2007 | Отправлено: 10:46 10-12-2009
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
TkaRik у меня тоже была проблема с выкачиванием обновленного  мобильного антивируса от DrWeb, решил это таким способом
Код:
wget -N --retr-symlinks ftp://ftp.drweb.com/pub/drweb/cureit/launch.exe

 
Добавлено:
У меня вопрос в тему, я знаю что у последних версий wget, коды возврата после выполнения 0-9, подскажите пожалуйста как их можно использовать в командном файле?

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

Страницы: 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

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

Сохранено: 09.06.2016 19:42:21 (c) xForumSaver