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

Редактировать | Цитировать | Сообщить модератору
tumanovalex
 
Там нужен специальный компилятор и po-файл. Погляжу, будет время - попробую сделать. Пока лучше так, чем никак. Это фокусы M$ - пишут одно, говорят другое, делают третье, а реально думают вообще о чёрт знает чём. Тут без ковыряния в исходниках ничего не сделать, а на это нужны силы и время.

Отправлено: 04:57 20-01-2009
tumanovalex

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Мне жалко Вашего времени и сил. Подсказанное Вами решение вполне меня удовлетворяет, хотя бы можно понять сообщения программы. Еще раз большое спасибо за совет!

Всего записей: 120 | Зарегистр. 31-10-2005 | Отправлено: 08:37 20-01-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
tumanovalex
 
Ладно, коли буду его компилить - поищу POEdit, попробую им обойтись. У себя я этот файл и не помню когда прибил - там ещё больше было намешано! Штук пять кодировок парень туда вставил когда компилил для брата. А тот сиё "счастье" мне сплавил, ну а я в dev>/nul прямой наводкой.

Отправлено: 09:28 20-01-2009 | Исправлено: Victor_VG, 09:29 20-01-2009
DTLA

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
возник такой вопрос:
 
при попытке качать с FTP через прокси вылазит
 
Добавлено:
возник такой вопрос:
при попытке качать с FTP через прокси вылазит  
 
200 No headers, assuming HTTP/0.9
Length: unspecified  
 
потом скачивает пару метров и зависает на нулевой скорости, причем ETA идет. Перезапуск запускает закачку сначала и опять виснет...
Без прокси с теми же настройками качает нормально
 
## Настройки wgetrc
convert_links = on
 
passive_ftp = off
glob = on
 
tries = 0
continue = on
recursive = on
 
use_proxy = on  
cache = on
#proxy-user=
#proxy-passwd=
http_proxy = http://192.168.0.1:8080    
ftp_proxy = http://192.168.0.1:8080  

Всего записей: 17 | Зарегистр. 03-10-2008 | Отправлено: 11:44 22-01-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
DTLA
 
Думаю, что стоит тебе глянуть ключи в шапке и командной строки их выдала версия 1.11.4.1 и по ним посмотри свои настройки. Обычно Wget нормально и через прокси и без него качает. Мои ключи тебе не подойдут - они сделаны в sh-скриптах для BSD и Solaris с учётом их особенностей.

Отправлено: 13:50 22-01-2009
Aeismann



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DTLA
какого типа прокси (http, ftp?). попробуй также включить пассивный режим

Всего записей: 174 | Зарегистр. 24-10-2006 | Отправлено: 22:52 25-01-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Такой вопрос: есть ли графическая Windows-морда для wget, работающей под FreeBSD/Linux, по протоколу ssh? То есть, на соседней FreeBSD/Linux-машине скачивается файл, и чтобы я мог удобно управлять поцессом из Windows-машины?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3248 | Зарегистр. 08-02-2003 | Отправлено: 00:43 27-01-2009
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые, помогите с некоторыми вопросами по Wget.
 
1 - Может ли программа производить выкачку внедренных видеофайлов, как это делает, например, Download Master? Для примера можно взять любую ссылку с Youtube. Можно ли при помощи Wget производить закачку подобных (flv, m4v, mp4 и т.д.) файлов?
 
2 - Может ли Wget в режиме скачивания списка ссылок (не рекурсивной выгрузки) помещать их в каталоги, соответствующие имени хоста (домена)? Если да, каким образом должна выглядеть такая строка?
 
3 - Может ли Wget работать в многопоточном режиме (параллельный запуск)?
 
Использую прогу под Windows, очень надеюсь на ответы. Знаю, что есть еще программа CURL - может, она решает такие задачи?

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 10:28 27-01-2009
Nike000

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

Цитата:
1 - Может ли программа производить выкачку внедренных видеофайлов, как это делает, например, Download Master? Для примера можно взять любую ссылку с Youtube. Можно ли при помощи Wget производить закачку подобных (flv, m4v, mp4 и т.д.) файлов?

 
Может. Находишь внутри страницы адрес видеофайла и скармливаешь wget-у. Сам он ссылку, естественно, не выдернет.
 

Цитата:
2 - Может ли Wget в режиме скачивания списка ссылок (не рекурсивной выгрузки) помещать их в каталоги, соответствующие имени хоста (домена)? Если да, каким образом должна выглядеть такая строка?

 
Может. RTFM "-x"
 

Цитата:
3 - Может ли Wget работать в многопоточном режиме (параллельный запуск)?

 
 
Может, только либо в бекграунд режиме, либо каждый экземпляр в своей консоли.

Всего записей: 246 | Зарегистр. 19-10-2006 | Отправлено: 12:13 27-01-2009
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nike000
 
Большое спасибо за оперативные ответы! Кратко и понятно.
 
Позвольте все же немного злоупотребить Вашей помощью, и задать еще один уточняющий вопрос касаемо пункта 1. Как раз в нем и самая проблема, поскольку DM способен самостоятельно выдергивать прямые ссылки на видеофайлы, но совершенно неприемлем для реализации через командную строку - задает много ненужных вопросов, на которые сам же отвечает через 30 секунд, виснет при постановке ссылок в очередь, беден в смысле параметров командной строки, не может прятаться в фоновый режим и т.д.
 
Не о нем речь. Знаете ли вы какие-либо консольные средства извлечения прямых ссылок на внедренные файлы, которые бы позволили мне принять на вооружение Wget? Ручные знакомы, но они совершенно неприемлемы, поскольку весь смысл - в автоматизации, которую и реализую через cmd.

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 12:34 27-01-2009
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
rBBWYwg
Если ваша проблема только в закачке видео с ресурсов типа Youtube в скрытом режиме то лучше воспользоваться качалкой типа USD.У последней есть соответствующая опция командной строки и веб-интерфейс.

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 13:09 27-01-2009 | Исправлено: mithridat1, 13:10 27-01-2009
JugglerLKR



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Версия 1.11.4 - не работает -N вместе в --retr-symlinks.
wget -N --retr-symlinks  
Кто-нибудь еще может проверить на своих хостах или я что-то не так делаю?

Всего записей: 174 | Зарегистр. 23-05-2004 | Отправлено: 18:13 01-03-2009
TeXpert



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Объясните, в чём преимущество Wget for Windows перед FlashGet? Вот уже пару месяцев активно гоняю wget под Linux -- поставил рядом средненький блок (Pentium 4 1,7 GHz, 256 RAM, RHEL 5.2), захожу туда с Windows-машины по ssh/PuTTY, скармливаю список и она прекрасно пашет, тьфу-тьфу-тьфу, очень надёжный софт, и как некоторые плачутся, что "не хватает интерактивности" -- какая интерактивность там ещё нужна, что как седло корове? Может, я чего-то упустил?

----------
Майкудук, Пришахтинск не предлагать!:)
А на Пирогова приходит снова весенний гомон...

Всего записей: 3248 | Зарегистр. 08-02-2003 | Отправлено: 19:54 01-03-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
TeXpert
 
Кому-то нравится кнопочки нажимать, а мне проще скриптом скормить Wget-у список. Ну, на вкус и цвет...

Отправлено: 20:54 01-03-2009
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А я вот бьюсь и никак не могу воспользоваться опцией принудительного присвоения файлам без расширения или динамическим ASP | CGI | PHP расширения HTML.
 
Мало того, что здесь
http://forum.ru-board.com/topic.cgi?forum=5&topic=10066&start=0
в своем описании господин Advanced Member popkov использует для этого параметр "-E", а в моей версии WGET 1.5.3.1 (из командной строки последнего дистрибутива 1.11.4) это параметр "-F", так он еще и не работает. Скачанные файлы не получают шмелевское расширение.
WGET использую прод Windows XP, в сочетании с опциями "-x" (сохранение с учетом структуры папок сайта), "-P" (добавление произвольного названия главной папки) , "-i" (источник ссылок для скачивания - файл html).
 
Ну что я не так делаю? Подскажите!

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 11:34 02-03-2009
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Н-даа..
Неужто никто не подскажет ошибку в строке вида  
wget.exe -x -F -PFOLDER -i links.htm
- почему параметр "-F" не присваивает скачанным страницам расширение html?
Плз. Сама не справлюсь.

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 13:14 03-03-2009
f_serg



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

Цитата:
-F,  --force-html          treat input file as HTML.
...
-E,  --html-extension        save HTML documents with `.html' extension.

 
Так что брать последнюю версию wget и использовать оба ключа -F -E.

----------
Serg

Всего записей: 1706 | Зарегистр. 11-09-2002 | Отправлено: 09:14 06-03-2009
rBBWYwg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
f_serg
Бльшое спасибо! Уже не надеялась на ответ.
 
Добавлено:
f_serg
Эх... Не работает.  
Вообще не понимаю - скачиваю версию 1.11.4 (официальный http://www.christopherlewis.com/WGet/wget-1.11.4b.zip ), захожу в список опций (-h) или вывожу версию (-v), и там вижу:

Код:
 GNU Wget 1.5.3.1  

где в полном перечне опций НЕТ НИКАКОГО "-E".
 
Может, сольете свою версию?

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 09:50 06-03-2009 | Исправлено: rBBWYwg, 12:20 06-03-2009
Victor_VG

Редактировать | Цитировать | Сообщить модератору
rBBWYwg
 
Кое-кто из наших перестарался - дал ссылку не на офсайт, а на домашнюю страницу пользователя, а у того лежит версия пакета всего лишь от ... wget-1.5.3.tar.gz  23-Sep-1998 02:35. Ну ошибся человек, бывает. Скачайте последнюю версию отсюда - http://gnuwin32.sourceforge.net/packages/wget.htm. В шапке ссылку поправил - на SourceForge.net всегда лежит именно последняя скомпилированная версия.
 
TeXpert
 
Под FreeBSD я такого инструмента в портах не встречал, а копаться во всех 20000-и с лишком файлов времени нет. Пиши если чего скрипт на Perl - в BSD системах как минимум Perl-5.5.8 всегда есть. Или используй sh-скрипт.

Отправлено: 23:16 06-03-2009 | Исправлено: Victor_VG, 23:30 06-03-2009
rBBWYwg



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

Всего записей: 23 | Зарегистр. 13-10-2008 | Отправлено: 11:06 10-03-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:41:24 (c) xForumSaver