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

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

Здравствуйте!
Не смог разобраться как WGET выкачивает страницы по ссылке с предварительной авторизацией.
Интересующий сайт - Новотека. По почте с него приходят ссылки на новсти, которые открываются только после авторизации. Задача - их скачать WGET-ом.
Посмотрите образец письма с нужными ссылками здесь http://zalil.ru/30918371 .  
Для открытия ссылок используется логин "onlyfortester", пароль "ruboard".
Как должен выглядеть код для Windows XP + Wget 1.11.4?

Всего записей: 14 | Зарегистр. 29-09-2009 | Отправлено: 08:17 24-04-2011
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NuclearBox
Для сайтов с нестандартной авторизацией можно попробовать использовать опцию --load-cookies.Для этого нужно предварительно авторизоваться на таком сайте через браузер,а затем подставить через эту опцию файл с куками в формате Netscape.Вот здесь лежит расширение Firefox,специально заточенное для экспорта куков.

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 16:23 24-04-2011 | Исправлено: mithridat1, 16:25 24-04-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
Пробный билд wget-1.2.1-r2474-develop (пока без SSL и IDN, сейчас разбираюсь).
http://ifolder.ru/23156422
Имеет ли смысл выкладывать далее?

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 19:10 24-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
Это под Винду, что-ли?
 
> выкладывать далее?
На Айфолдер точно не надо. :)

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:23 24-04-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
Да, для Windows. Проверял на XP,Vista.  
 

Цитата:
На Айфолдер точно не надо

Куда лучше?
 

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 19:39 24-04-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alex_Piggy
> Куда лучше?
Ну на Дропбокс (реф), например. В общем так, чтобы ссылка была прямая, а не «просмотрите рекламу». ;)

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:57 24-04-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
Выкладываю для Windows Wget v1.2.1 r2474.
В архиве в корне wget.exe (без доп. функций, работает на Win98) и две папки - SSL и SSL+IRI.
К сожалению, не разобрался в чем дело - при использовании IRI обязательно нужно указывать входную кодировку (для русского языка --local-encoding=CP1251).
 
http://db.tt/46X8e94

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 17:28 27-04-2011
Singularius

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

Всего записей: 1 | Зарегистр. 25-06-2010 | Отправлено: 11:39 04-05-2011 | Исправлено: Singularius, 14:44 04-05-2011
zae_prog

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день!
А можно ли с помощью утилиты Wget сделать перенос файлов с FTP на локальный диск?
Или каким еще другим образом это сделать можно?

Всего записей: 53 | Зарегистр. 13-02-2009 | Отправлено: 14:35 26-05-2011 | Исправлено: zae_prog, 15:53 26-05-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zae_prog
Перенос? Т.е. копирование и удаление на источнике? Нет, сабж работает с удаленным сервером только на чтение.

----------
Спроси, где спросить!

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 17:21 26-05-2011
Victor_VG

Редактировать | Цитировать | Сообщить модератору
zae_prog
 
Скорее всего никаким - обычная настройка серверов по правам доступа для удалённых гостевых систем 444 - т.е. только на чтение. Иначе иные новички таких дров наломают - без канистры не разберёшь.

Отправлено: 03:12 27-05-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
444?
644.
 
А т. zae_prog, я полагаю, доступ к чему надо все-таки имеет, раз спрашивает.

----------
Спроси, где спросить!

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 03:28 27-05-2011
Victor_VG

Редактировать | Цитировать | Сообщить модератору
ASE_DAG
 
Или хочет получить, но как красный партизан - его пытают, он молчит. Я считаю, что в такой постановке задачи мы ему на вопрос ответили в полном объёме. Остальное - и тогда, коли останутся вопросы, то пусть чётко их формулирует либо идёт перечитывать маны до просветления.

Отправлено: 04:21 27-05-2011
zae_prog

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
 
Да FTP сервер это мой личный. Я просто на другой свой FTP серввер данные хочу именно перенести чтобы не писать дополнительно лишних процедур удаления перенесенных данных.

Всего записей: 53 | Зарегистр. 13-02-2009 | Отправлено: 07:59 27-05-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
zae_prog
Я понял. Сабж для этого не подходит.
Вопрос «а чем» лучше задать в более подходящем месте, описав поподробнее, что вы хотите от клиента.  
Могу добавить, что лично я бы lftp использовал.

----------
Спроси, где спросить!

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 14:10 27-05-2011 | Исправлено: ASE_DAG, 14:11 27-05-2011
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Где-нибудь есть бинарник версии 1.11.4 для винды без поддержки SSL (чтобы весил мало)?

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 08:25 01-06-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый день
Pasha_ZZZ
Версия 1.11.4 от Bart Puype хттп://users.ugent.be/~bpuype/wget/
 
PS  А чем хуже 1.21 без SSL?

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 15:46 01-06-2011
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Ну 1.11.4 вроде как официальный финал, остальные анстейбл... Без ССЛ нашел только 1.5.3, но в ней прогресс только точками, отстой.
Цитата:
Версия 1.11.4 от Bart Puype

Цитата:
win32 binary with OpenSSL support

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 08:25 02-06-2011
Alex_Piggy

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Угу, я, кажется понял.
Да, сборка Bart Puype с поддержкой SSl, но она является stand-alone (в смысле, не нужны никакие зависимости). Реальный размер 900 Kb, ужата UPX до 400Kb.
Полностью без SSL официальных сборок я не помню.  
Когда-то в файлах бегал Wget 1.11.4 размером 100-200 кило, но я не помню то ли это официал, то ли делал для себя и если так, из какой версии. Поищу, если найду, выложу.
 
Добавлено: не нашел, плюнул, пересобрал (из официальных исходников версии 1.11.4 без SSL,  MinGW32). 97 Kb http://db.tt/pZfPxe4

Всего записей: 1537 | Зарегистр. 07-08-2002 | Отправлено: 13:15 02-06-2011 | Исправлено: Alex_Piggy, 18:16 02-06-2011
Victor_VG

Редактировать | Цитировать | Сообщить модератору
Alex_Piggy
 
Так по моему это самое разумное - статическая сборка. Но тут естть насколько помню хитрость - OpenSSL  другие либы не компилятся в самодостаточный бинарник, а просто к нему линкуется их интерфейс и они должны быть или я рядом с вызывающим бинарником, либо в пути. Первое предпочтительнее по ошибкам. А тот вариант бинарника про который идёт речь как помню вообще вызовов OpenSSL в импорте не имеет, и класть рядом с ним эти библиотеки, а потом давать ему адрес вида _https://_ бесполезно - он должен вывести сообщение об ошибке не поддерживаемого протокола. Что-то такое у меня было когда я этот опыт лет пять назад ставил. По крайней мере, на многих серверах фокус с не имеющим SSL клиентом пытающимся скачать данные с _HTTPS:// не пройдёт - сервер откажет в логоне на этапе установления соединения. А зело настойчивым юзером поинтересуются местные админы. И хорошо, если только они, а не служба безопасности в придачу - этим такой интерес по штату положен.

Отправлено: 21:13 02-06-2011 | Исправлено: Victor_VG, 21:19 02-06-2011
Открыть новую тему     Написать ответ в эту тему

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