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

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А на мой вопрос никто не в состоянии ответить? =(
 

Цитата:
Вот есть список ссылок (все точно ведут на файлы без скриптов каких либо и переадресаци), штук 150, и их надо проверить на наличие ошибки 404, а затем неработающие записать в отдельный файл. Возможно ли такое реализовать? Если нет, как по проще моего вариана сделать, возможно ли такое? Читал в справке, что wget может быть сетевым пауком, но оно ли это?

 
Уже где только не спрашивал, все молчат. Может я вопрос не так задал, хотя что тут не понятного? Проверить ссылки на работоспобность

Всего записей: 610 | Зарегистр. 17-08-2006 | Отправлено: 01:20 01-06-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
b3nd3rster
А wget в случае ошибки 404 выдаёт цифру 404 или известную надпись, которую можно было бы отловить командой find? Если да, то проблема, в общем-то разрешима, хотя относится уже к программированию на BAT-файлах или (если разбираешься) ещё круче можно сделать на WSH.  
Только не спеши задавать вопросы в лоб - почитай тему. По сути, там уже есть все фрагменты кода, какие тебе нужны.

Всего записей: 1780 | Зарегистр. 22-03-2003 | Отправлено: 01:32 01-06-2007 | Исправлено: popkov, 01:36 01-06-2007
igor_andreev

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

Цитата:
Уже где только не спрашивал, все молчат.  

А тут говорить то и не о чем. Wget у тебя под рукой, список тоже, хэлп у wget встроен...
Берешь свой список, files.txt например:

Цитата:

http://nncron.ru/download/nncron191.exe
http://nncron.ru/download/nncron190.exe
http://nncron.ru/download/nncron189.exe
http://nncron.ru/download/nncron188.exe
http://nncron.ru/download/nncron187.exe
http://nncron.ru/download/nncron186.exe

Вырубаешь все параметра в .wgetrc, относящиеся к ведению лога.

Код:

debug=off
verbose=off
quiet=off
server_response=off

Или, если .wgetrc не пользуешься, аналоги этих команд в комстроке. И запускаешь:

Код:

wget --spider -a spiderlog.txt -i files.txt

На выходе имеешь файл spiderlog.txt следующего содержания:

Цитата:

200 OK
 
http://nncron.ru/download/nncron190.exe:
11:39:54 ERROR 404: Not Found.
200 OK
 
200 OK
 
200 OK
 
http://nncron.ru/download/nncron186.exe:
11:41:11 ERROR 404: Not Found.

Дальше рассказывать, что с этим файлом делать? Собственно popkov уже сказал...
 
 
 

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 10:54 03-06-2007
evgenych

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Че то я не пойму.
через браузер открывается
www.faqs.org/rfcs/rfc1.html
 
пишу
wget www.faqs.org/rfcs/rfc1.html
 
---> Resolving www.faqs.org... failed: Host not found
 
ping www.faqs.org
 
Обмен пакетами с www.faqs.org [207.44.235.116] по 32 байт:
 
Ответ от 207.44.235.116: число байт=32 время=298мс TTL=48
Ответ от 207.44.235.116: число байт=32 время=275мс TTL=48
 
GNU Wget 1.9.1

Всего записей: 184 | Зарегистр. 20-07-2003 | Отправлено: 02:04 27-06-2007
8AleX8



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

Цитата:
пишу  
wget www.faqs.org/rfcs/rfc1.html

А как насчет http://?

Всего записей: 1812 | Зарегистр. 11-12-2001 | Отправлено: 09:00 27-06-2007
evgenych

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

Код:
 
wget http://rarlab.com/rar/wrar370ru.exe
--21:23:14--  http://rarlab.com/rar/wrar370ru.exe
           => `wrar370ru.exe'
Resolving rarlab.com... failed: Host not found.
 

 

Код:
 
ping rarlab.com
 
Обмен пакетами с rarlab.com [216.127.68.107] по 32 байт:
 
Ответ от 216.127.68.107: число байт=32 время=303мс TTL=239
 

 

Код:
 
wget http://216.127.68.107/rar/wrar370ru.exe
--21:24:32--  http://216.127.68.107/rar/wrar370ru.exe
           => `wrar370ru.exe'
Connecting to 216.127.68.107:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://files7.rarlab.com/rar/wrar370ru.exe [following]
--21:24:32--  http://files7.rarlab.com/rar/wrar370ru.exe
           => `wrar370ru.exe'
Resolving files7.rarlab.com... failed: Host not found.
 

 
Вставляю в Оперу http://216.127.68.107/rar/wrar370ru.exe - начинается загрузка!
 
Блин! У меня долго стоял Wget 1.9.1. Все было нормально.
 
Поставил вчера 1.10.2b. Попользовался им пол часа и вот такая херня началась.
Щас все вернул обратно - не помогает
 
Люди, как починить??
 
 
P.S.
Разобрался.
Перенес wget в другую папку - заработало

Всего записей: 184 | Зарегистр. 20-07-2003 | Отправлено: 20:30 27-06-2007 | Исправлено: evgenych, 00:19 28-06-2007
dosya



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не прикручивается сабж к мозиле.
делаю как написано, урл не находится.
 
и еще, мне надо для премиума рапидшары, чтобы автоматически подставлялось имя юзера и пароль. подскажите плиз как это сделать?

Всего записей: 728 | Зарегистр. 27-02-2003 | Отправлено: 15:54 01-07-2007
Aeismann



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

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 14:25 15-10-2007
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aeismann
Я тоже давно ищу такую сборку,но никто не отзывается

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 16:02 15-10-2007
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1, вот-вот... я писал в саппорт, но их мыло недоступно, писал Кристоферу, но он не ответил... может, на никсовых форумах спросить? Но я не знаю, где именно...

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 09:59 16-10-2007
mithridat1



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

Цитата:
отправляют на сайт, который в дауне

Сайт этот я так понимаю socks.nec.com.В принципе библиотеки socks5 которые там лежали сейчас можно и фтп-поиском найти... Сейчас попробую.
 
Добавлено:
Aeismann
ftp://ftp.kstu-kai.ru/os/unix/socks/v1.0r11/socks5-v1.0r11.tar.gz
ftp://ftp.kuban.ru/.1/Linux.1/Software1/socks5-v1.0r11.tar.gz
ftp://admin.tomsk.ru/pub/FreeBSD/distfiles/socks5-v1.0r11.tar.gz
http://freeware.sgi.com/source/socks5/socks5-v1.0r11.tar.gz
Вот по моему те библиотеки,что на socks.nec.com лежали

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 10:07 16-10-2007 | Исправлено: mithridat1, 13:36 16-10-2007
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1, во, круто. Теперь бы еще заточить это под Вынь...

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 13:00 16-10-2007
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Aeismann
К сожалению,помочь в сборке с соксами не смогу,но если у вас все же получится просьба сообщить в теме.

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 16:01 16-10-2007
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мда, похоже, нереально. Покопался я в сорсах, но директива использования либы фактически нигде не используется, т.е. настройка происходит где-то в глубинах скрипта configure. А поскольку выполняется он только под никсами, то вывод неутешителен... В никсах я нуб, поэтому вряд ли сумею разобраться. Пробовал собирать вгет под Cygwin, но после кучи непонятных ошибок от линкера едва не возненавидел все никсы и Си скопом). Так что придётся юзать проги типа FreeCap - пускай и не очень красивое решение, но хотя бы рабочее.
В заключение выкладываю хоть какой-то результат - вгет без вшитых SSL, что отменяет необходимость тащить с ним две либы.
http://ifolder.ru/3830776

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 12:29 22-10-2007
MaxPolulyakh



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Прошу помощи у специалистов по WGet-у.
 
Пытаюсь закачивать wget-ом апдейты к DrWeb.
 
Делаю это путём закачивания всех zip-файлов из заданной папки, ftp://ftp.drweb.com/pub/drweb/bases/. Однако в этой папке есть также пара файлов, которые не являются апдейтами баз, а именно vrcpp.zip и drweb32.zip. Однако они также регулярно обновляются и wget их также скачивает. Я не смог разобраться, как мне сделать так, чтобы программа их игнорировала.
 
Второй вопрос - можно ли как-то указать wget-у, чтобы скачанные файлы он складывал в определённую подпапку?
 
Вообще, в более широком смысле я бы хотел создать задание, которое бы позволяло просматривать папку на ftp, находить файлы, которые изменились со времени последней операции и скачивать только их, при этом не храня те, что были уже скачаны в прошлый раз.
 
Сможет ли кто-то мне помочь?
 
Заранее спасибо всем, кто сможет уделить этому время.

Всего записей: 45 | Зарегистр. 24-06-2005 | Отправлено: 20:08 28-10-2007
Aeismann



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

Цитата:
Я не смог разобраться, как мне сделать так, чтобы программа их игнорировала

-R,  --reject=LIST               comma-separated list of rejected extensions.
 

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

-P,  --directory-prefix=PREFIX  save files to PREFIX/...
 

Цитата:
Вообще, в более широком смысле я бы хотел создать задание, которое бы позволяло просматривать папку на ftp, находить файлы, которые изменились со времени последней операции и скачивать только их, при этом не храня те, что были уже скачаны в прошлый раз

А как, по-твоему, вгет сможет определить, что файл изменился, если он удалён?

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 14:22 29-10-2007
MaxPolulyakh



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

Цитата:
list of rejected extensions

extensions - это расширения, типы файлов, я так понимаю? А если все файлы одного типа, zip?
 

Цитата:
-P,  --directory-prefix=PREFIX

Спасибо, сейчас проверю!
 
Проверил.  
Переместил все zip-файлы в папку Bases. Создал Reject.txt с содержанием "vrcpp.zip, drweb32.zip", в командной строке добавил --reject=Reject.txt. Удалил эти два файла.
 
Командная строка: wget.exe -b -N -owget.log -t3 -nH --directory-prefix=Bases --reject=Reject.txt ftp://ftp.drweb.com/pub/drweb/bases/*.zip
 
Два удалённых файла скачались.
 
Что я сделал не так?
 

Цитата:
А как, по-твоему, вгет сможет определить, что файл изменился, если он удалён?

Я не знаю, потому и спрашиваю. Я привык думать, что иксовые утилиты через командную строку разве что кофе не варят. Может, он умеет с txt-файлами работать, читать из них ссылки с параметрами в виде даты, скажем, и времени создания, и при полном совпадении этих параметров с такими у файлов на ftp не качать их.
 
Не умеет? Ну, жаль, но не особенно. И так, в общем-то, работает, но хотелось бы совсем красиво и аккуратно сделать

Всего записей: 45 | Зарегистр. 24-06-2005 | Отправлено: 16:16 29-10-2007
Aeismann



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

Цитата:
extensions - это расширения, типы файлов, я так понимаю? А если все файлы одного типа, zip?

Не знаю, почему они написали про расширения, но у меня работает как обычная маска, например, параметр
"-A*o*.*"
закачивает только файлы с буквой "о" в имени.
 

Цитата:
Создал Reject.txt с содержанием "vrcpp.zip, drweb32.zip", в командной строке добавил --reject=Reject.txt

Насколько я понимаю, такая фишка не проканает, только "comma-separated list". А такой командой ты запретил скачивать файл "Reject.txt" =)))
 

Цитата:
Я привык думать, что иксовые утилиты через командную строку разве что кофе не варят. Может, он умеет с txt-файлами работать, читать из них ссылки с параметрами в виде даты, скажем, и времени создания, и при полном совпадении этих параметров с такими у файлов на ftp не качать их.

Ну, может, какая-то другая утила и умеет, но вгет нет...

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 17:28 29-10-2007
MaxPolulyakh



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

Цитата:
Насколько я понимаю, такая фишка не проканает, только "comma-separated list". А такой командой ты запретил скачивать файл "Reject.txt" =)))

Да, это я протупил Исправил на  --reject=drweb32.zip,vrcpp.zip - теперь работает
 
Спасибо!
 

Всего записей: 45 | Зарегистр. 24-06-2005 | Отправлено: 00:40 31-10-2007
popkov

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Объясните, а что это за
Цитата:
trunk Binary Build
? На запрос wget --version
выдаёт
Цитата:
GNU Wget 1.10+devel
.
 
Собственно, решил скачать обновление потому, что у меня последняя версия почему-то размер загруженной части файла пишет, используя вместо точки букву "a"... Старые версии тек себя не вели. Неприятная особенность выделена:
Цитата:
D:\DESKTOP\wget-1.10.2b>wget http://www.ias.ac.in/jarch/proca/4/00000139.pdf
--11:27:57--  http://www.ias.ac.in/jarch/proca/4/00000139.pdf
           => `00000139.pdf'
Resolving www.ias.ac.in... 203.197.183.66
Connecting to www.ias.ac.in|203.197.183.66|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 168а580 (165K) [application/pdf]
 
25% [========>                            ] 42а288         2.34K/s    ETA 00:53

Можно это как-то исправить?

Всего записей: 1780 | Зарегистр. 22-03-2003 | Отправлено: 11:30 02-11-2007 | Исправлено: popkov, 12:10 02-11-2007
Открыть новую тему     Написать ответ в эту тему

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