Страница 4 / 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
Activium

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
evgenych
в этом случае можно попробовать поэкспериментировать с рекурсией. попробуйте прописать в конфигурационном файле (wgetrc или wget.ini) что-то типа:

Код:
 
domains = nextmail.ru
accept = .rar
reject = .htm,.HTM,.html,.HTML,.gif,.GIF,.jpg,.JPG,.jpeg,.JPEG
recursive = on
reclevel = 1 # или может 2, 3
input = links.txt # ваш файл со ссылками
 

Всего записей: 57 | Зарегистр. 06-11-2003 | Отправлено: 05:18 05-07-2005 | Исправлено: Activium, 05:26 05-07-2005
evgenych

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

Код:
 
domains = nextmail.ru  
accept = .rar  
reject = .htm,.HTM,.html,.HTML,.gif,.GIF,.jpg,.JPG,.jpeg,.JPEG  
recursive = on  
reclevel = 1 # или может 2, 3  
input = links.txt # ваш файл со ссылками
 

 
Спасибо помогло.
Добавил только

Код:
 
span_hosts = on
 


Цитата:
 
... в конфигурационном файле (wgetrc или wget.ini)...
 

у меня wget.ini не воспринимается, к сожалению...
wgetrc неудобно юзать, нет расширения, не привязан к текстовому редактору, каждый раз выбирать из списка

Всего записей: 184 | Зарегистр. 20-07-2003 | Отправлено: 18:32 05-07-2005
dimensionz



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
evgenych
Времени прошло уже прилично, но может мой совет еще пригодится: wgetrc можно назначить, указав полное имя файла в переменной wgetrc.
 
Но мой опыт показывает, что все же лучше не использовать файл wgetrc для оперативной параметризации. В таких файлах хранят устоявшиеся умолчания, оперативные изменения лучше делать в командной строке.
 
Знаю, знаю: найдутся несогласные со мной. Но этот спор - старый, как мир. Глобалисты были и будут. Как и их противники.
 
Добавлено:
WGet сходит с ума.
 
Отменяю использование Proxy и продолжаю скачивать с тех же сайтов, что и раньше. С HTTP-сайтов все как и раньше, а с FTP-сайтов теперь качает как попало, канал открывается только с энной попытки (этот "эн" тем больше, чем дальше сайт), забивает консоль дополнительной диагностикой, а размер файла не показывает (как будто это какой-нить stream), соответственно режим spider использовать бессмысленно.
 
Однако сначала было так: вдруг WGet "попросил разрешения" открыть исходящее соединение (у меня активирован Windows Firewall), когда я продолжил загрузку недокачанного вчера файла. Нехорошие сомнения на время отвлекли меня от скачивания - совсем недавно я избавился от одного оччень вредного "шпиона". Но увы -все проверки ничего не дали, причина оказалась именно в WGet'е. Я подумать не мог, что причина именно в отключении Proxy, тем более что это у меня привычный прием, для HTTP-сайтов. Ндааа...
 
Но самое "веселое" в этой ситуации то, что я заметил это только сейчас, спустя год после начала пользования этой утилитой. Ну вот не нужен был мне WGet для качания с  FTP'шек. Да, проверил в самом начале, так, ради интереса - вроде качает, ну и ладно (причем и без прокси - если качать с очень "близкого" сайта, то разницы можно и не заметить, особенно если глаз еще не "пристрелялся" к особенностям диагностики). А так я все это время качал с фэ-тэ-пэ другими средствами, и лишь изредка WGet'ом, но не заморачиваясь подгоном опций...
 
Я завязываю с "лирикой", теперь только "физика": WGet-1.9.1 плохо работает с "родными" Windows-FTP-серверами или серверами, работающими под управлением Windows (например, Serv-U).
 
Поделитесь своим опытом.

Всего записей: 8 | Зарегистр. 04-07-2005 | Отправлено: 01:38 21-07-2005 | Исправлено: dimensionz, 05:19 21-07-2005
f_serg



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

Цитата:
Поделитесь своим опытом.

В пассивном режиме у меня отлично работает
Цитата:
с "родными" Windows-FTP-серверами или серверами, работающими под управлением Windows

В активном - не знаю, сижу за корпоративным файрволом.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 06:36 21-07-2005
dimensionz



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Да, действительно, указал

Код:
 
--passive-ftp
 

и почти все пошло. За исключением некоторых файлов, имена которых содержат квадратные скобки (ясно, что WGet воспринял эти линки как регулярные выражения). Другие "плохие" символы не искал - недосуг было.
 
Однако возникает вопрос. Раз пассивный режим по умолчанию выключен, значит WGet должен работать в активном режиме. Более того, именно так он и делает. Но избирательно - см. мой пред. пост.  
 
Вот фрагменты диагностики, перед началом скачивания с сайта ftp.gnu.org
 
==> PORT ... done.    ==> RETR wget-1.9.1.tar.gz ... done.
Length:  1,322,378 (unauthoritative)
 
А теперь тот же кусок диагностики при попытке скачать c некоего стабильного и "близко расположенного" сайта под управлением Windows Server 2003
 
==> PORT ... done.    ==> RETR winxpsp2.iso ... done.
accept: Unknown error
 
Такой же облом будет, если на сервере "клиентский" Windows, скажем WinXP "в паре" с Serv-U.
 
И потом, что это значит, когда выключаешь прокси, то появляются запрещенные символы в линках. Как то не улавливаю связи Тем более, что не должен WGet итспользовать регулярные выражения - это не документировано.

Всего записей: 8 | Зарегистр. 04-07-2005 | Отправлено: 08:22 22-07-2005 | Исправлено: dimensionz, 08:33 22-07-2005
igor_andreev

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

Цитата:
За исключением некоторых файлов, имена которых содержат квадратные скобки

Попробуй в фтп-урл заменить квадратные скобки на знаки вопроса, вроде link[somename].rar на link?somename?.rar

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 08:46 22-07-2005
f_serg



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

Цитата:
что не должен WGet итспользовать регулярные выражения - это не документировано.

Документировано. Опция --no-glob. И wget забъет на метасимволы.
 
Содержание файла .urls:

Цитата:
ftp://serg:********@ftp.server.dom//home/serg/tmp/file[12345]name.txt

 

Цитата:
E:\>wget -Y off --no-passive-ftp -i .urls
--13:42:28--  ftp://serg:*password*@ftp.server.dom//home/serg/tmp/file[12345]name.txt
           => `.listing'
...
13:42:28 (530.98 KB/s) - `.listing' saved [1849]
 
Removed `.listing'.
No matches on pattern `file[12345]name.txt'.

 

Цитата:
E:\>wget -Y off --no-passive-ftp --no-glob -i .urls
--13:43:44--  ftp://serg:*password*@ftp.server.dom//home/serg/tmp/file[12345]name.txt
           => `file[12345]name.txt'
...
100%[====================================>] 5             --.--K/s
 
13:43:44 (320.19 KB/s) - `file[12345]name.txt' saved [5]
 
 
FINISHED --13:43:44--
Downloaded:  bytes in 1 files

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 09:44 22-07-2005
dimensionz



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

Цитата:
в фтп-урл заменить квадратные скобки на знаки вопроса, вроде link[somename].rar на link?somename?.rar  

Интересный прием, чисто русский я бы сказал. Но нежелательный, поэтому хорошо, что есть соответствующая опция.
 
f_serg

Цитата:
Документировано. Опция --no-glob.  

Спасибо за поправку. Я как-то и забыл про глоббинг (так как использовал только те режимы, где он не работает). Но чтобы быть точным, опция  --no-glob не документирована и "не работает" (как и --no-passive-ftp) на моей версии WGet'а (я указывал ее в первом своем посте). Может, ты уже "десяткой" пользуешься? Чем она хороша? Инсталяшку под Windows ленивому не подскажешь?
 
Но остались без ответа вопросы:
  • почему Wget в активном режиме не работает с некоторыми FTP-серверами (а только в пассивном или через прокси)
  • почему при использовании прокси отключен глоббинг - это Wget его отключает или просто он не сообщает, что отказ по этому режиму идет от прокси?

Всего записей: 8 | Зарегистр. 04-07-2005 | Отправлено: 23:56 25-07-2005 | Исправлено: dimensionz, 00:16 26-07-2005
netspider

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
всем привет, подскажите опцию в конфиге, что бы все закачки складывались допустим в C:\downloads

Всего записей: 405 | Зарегистр. 13-01-2004 | Отправлено: 16:41 28-07-2005
f_serg



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

Цитата:
Может, ты уже "десяткой" пользуешься?

Да. Но эта опция была и в предыдущих версиях. wget --help

Цитата:
Инсталяшку под Windows ленивому не подскажешь?

Я из исходников собираю. OpenSSL + WGet. Могу кинуть собранное мной на мыло.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 07:11 09-08-2005
gavana



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
просветите,пожалуйста:
 
1. как делать паузу
2. при обрыве связи окно cmd закрывается , как продолжить закачку
3. как грамотно скрестить wget c firefox
4. как выставлять количество потоков и секций
 
p.s. пользуюсь недавно,сильно не пинайте.Спасибо

Всего записей: 1251 | Зарегистр. 14-03-2003 | Отправлено: 12:32 16-08-2005
netspider

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

Цитата:
3. как грамотно скрестить wget c firefox

FF+Flashgot+wget = love
 
да и ещё подскажите есть ли у wget очередь загрузок..ну в смысле чтобы не каждый раз окно открывалось, а он качал из списка?

Всего записей: 405 | Зарегистр. 13-01-2004 | Отправлено: 13:57 16-08-2005 | Исправлено: netspider, 13:58 16-08-2005
f_serg



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

Цитата:
2. при обрыве связи окно cmd закрывается , как продолжить закачку

Опция -c
netspider

Цитата:
да и ещё подскажите есть ли у wget очередь загрузок..ну в смысле чтобы не каждый раз окно открывалось, а он качал из списка?


Код:
wget [опции] -i urls.txt

В файл urls.txt прописываешь все URL-и, которые надо стянуть.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 06:40 17-08-2005 | Исправлено: f_serg, 06:41 17-08-2005
gavana



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

Цитата:
Цитата:
2. при обрыве связи окно cmd закрывается , как продолжить закачку
 
Опция -c  

 
спрошу иначе:
  - как сделать ,чтобы окно при завершении (обрыве) закачки не закрывалось
  - как правильно можно приостановить, а позже продолжить закачку (какие опции, URL      
 нигде не сохраняется)
 
 

Всего записей: 1251 | Зарегистр. 14-03-2003 | Отправлено: 10:55 17-08-2005
f_serg



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

Цитата:
- как сделать ,чтобы окно при завершении (обрыве) закачки не закрывалось

Ну, это уже не к wget-у вопрос. Запускай bat-ничек какой-нибудь.
Типа cmd.exe /K wget [опции]...

Цитата:
- как правильно можно приостановить, а позже продолжить закачку (какие опции, URL      
 нигде не сохраняется)

Приостанивить - никак. Насчет URL - занеси его в файл и опция -i.
 
Добавлено:
Да, есть опция -b. Тогда wget работает в фоне и весь свой лог пишет в файл.

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 08:39 18-08-2005
8AleX8



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wget 1.10.1 STABLE VERSION
http://xoomer.virgilio.it/hherold/wget-1.10.1b.zip

----------
Заведи себе DropBox. Минимум 2.25 GB в облаке с кросплатформенным доступом.

Всего записей: 1812 | Зарегистр. 11-12-2001 | Отправлено: 23:47 29-08-2005
netspider

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

Всего записей: 405 | Зарегистр. 13-01-2004 | Отправлено: 05:33 30-08-2005
8AleX8



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

Цитата:
а changelog ?


Цитата:
Wget 1.10.1 is a bugfix release with no user-visible changes.


----------
Заведи себе DropBox. Минимум 2.25 GB в облаке с кросплатформенным доступом.

Всего записей: 1812 | Зарегистр. 11-12-2001 | Отправлено: 08:28 30-08-2005
g00d

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
народ помогите выкачать с помощью вгета вот Это
http://infection.hackthisbox.com/dl/vir/
хочется все зипы выкачать оттуда
пробовал по разному но все равно он хочет index.html
а нн нет его там.. как ???

Всего записей: 172 | Зарегистр. 10-01-2004 | Отправлено: 16:09 23-09-2005
bredonosec

Редактировать | Цитировать | Сообщить модератору
g00d
A offline explorer-ом не пробовал? Там при создании проекта нового имеется галка одна "try to explore all possible subdirectories" - возможно, поможет..

Отправлено: 01:52 26-09-2005
Открыть новую тему     Написать ответ в эту тему

Страницы: 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:39:02 (c) xForumSaver