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



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
spv12345
Уж чего-чего, а решений для бэкапа масса на разные случаи жизни и вкусы. Ничего конкретного советовать не возьмусь, поскольку, во-первых, знаком с этой темой поверхностно, а во-вторых, оффтопик.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 05:56 04-12-2010
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброе время суток.
 
Вопрос по wget
 
как мне сохранить файл полученный в определённый каталог?
 
так :
 

Код:
Wget --certificate="xxxxxxxx.crt" --no-check-certificate --private-key="xxxxxxxx.key" -O report.zip --directory-prefix=InBox "https://secure.xxxxxxxx.ru:444/payments-report/do?&action=auto&mm=11&dd=30&yyyy=2010"
не работает

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 13:16 05-12-2010 | Исправлено: An4eus, 14:15 05-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
An4eus
Перенаправление вывода, здесь заданное ключом -O, ключ -D не учитывает.
Иначе говоря, строка
$ wget -O file example.com
эквивалентна строке
$ wget example.com > file
, не более.
 
Указывайте путь до файла вывода:
$ wget -O inbox/report.zip example.com

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 23:26 05-12-2010
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
огромное спасибо !!!
 
самое веселье заключается в том, что это конечно же пробовал, но так:

Код:
Wget --certificate="xxxxxxxx.crt" --no-check-certificate --private-key="xxxxxxxx.key" -O inbox\report.zip "https://secure.xxxxxxxx.ru:444/payments-report/do?&action=auto&mm=11&dd=30&yyyy=2010"
надо же было подумать, что перепутал \ с /

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 05:12 06-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
An4eus
Не за что.
Осталось удалить файлы report.zip и inboxreport.zip из текущей директории.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 06:04 06-12-2010
An4eus



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ASE_DAG
это подзадача для одной программы, файл пусть перезаписывается, ибо как по запросу видно данные берутся за день по несколько раз

----------
Век живи - век учись!

Всего записей: 3768 | Зарегистр. 23-07-2007 | Отправлено: 06:25 06-12-2010
aChikatillo

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

Цитата:
Уж чего-чего, а решений для бэкапа масса на разные случаи жизни и вкусы. Ничего конкретного советовать не возьмусь, поскольку, во-первых, знаком с этой темой поверхностно, а во-вторых, оффтопик.

Тогда к чему советовать использовать другой софт?
 
Мне нужно что бы можно было сливать архивы с удаленного сервера, а в основном весь софт для бекапа предназначен для бекапа на самом сервере где он установлен...вот сижу ищу что может бекапить удаленные фтп...
А wget уже месяц тянит отлично архивчики, хотелось бы еще что бы удалять скаченное умел....
 

Всего записей: 245 | Зарегистр. 18-10-2007 | Отправлено: 10:46 07-12-2010 | Исправлено: aChikatillo, 10:50 07-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
aChikatillo
>Тогда к чему советовать использовать другой софт?
А я и не советую использовать другой софт, я говорю, что сабж для этого не предназначен.
 
> еще что бы удалять скаченное умел
Не умеет и не будет уметь, это не его задача. Неитерактивный ftp-клиент — это, например, lftp.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 11:01 07-12-2010
ka1enka

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть программа такая foobar2000, есть там плагин foo_run.
С помощью него и вгета можно записывать трансляцию радио. Но проблема в том, что я не знаю как записывать в выбранную папку. Сейчас это делаю так:
"C:\Program Files\GnuWin32\bin\wget.exe" %path%
и трансляция пишется в папку foobar'a.
 
Разобрался.
Если кому поможет:
wget -P "С:\Downloads" %path%
вгет при этом лежит в папке windows

Всего записей: 1 | Зарегистр. 25-12-2010 | Отправлено: 22:31 25-12-2010 | Исправлено: ka1enka, 22:54 25-12-2010
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ka1enka
Ничего не понял.
Указание папки — ключ -P, например:
$ wget -P ~/downloads http://example.org
, не найти это в мане сложно.
 
Добавлено:
Да, совершенно верно. ;)
Если захотите узнать побольше, а искать по английскому ману сложно, можно найти не очень свежий, но русский на Опеннете.
 
Добавлено:
Кстати ссылки на русский ман напрасно не было в шапке — добавил.
 


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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 22:58 25-12-2010 | Исправлено: ASE_DAG, 23:20 25-12-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
ASE_DAG
 
да, а зачем использовать что-то написанное под UNIX/LINUX пользователю Win? Через CygWin запускать клиента? Тогда проще использовать системный FTP и написать нужные скрипты под него. Иначе получим повторение истории начала 90-х когда Nowell убеждала пользователей, что кроме её Netware сетевых ОС нет в природе. Я это дело помню, поскольку тогда эти ребята сидели у меня за стенкой и старались мне мозги прокомпостировать при каждом удобном случае. А у меня скромно стоял SCO ODT на одной машине, рядом SPARC Station 20 под Sun OS 2.4, и на столе стоял РС под управлением IBM AIX, да и напарник развлекаясь гонял в хвост и в гриву OS/2 v4 или v5 уже не помню какую именно. А у студентов стояла WfW 3.11 закидывавшаяся на их машины с UNIX сервера. Но глава Novell-й банды Костя Стоволосов, тогда мы его звали "Главный по Тварям Советского Союза" исправно говорил нам, что мол кроме ихней нетвари в Природе нет и не было сетевых осей, мол они и первые и единственные во Вселенной, а сам в это время на Banyan VINES 5.5 сидел - тварь у них падала в обморок даже не от чиха, а от пролетевшего вдали комара. Не зря тогда народ издевался:

Цитата:
В духовной семинарии идут занятия по общению с Небом с помощью Netware 4.1 SMP:  
На кафедре поп, студенты пишут.
 
поп:
- Нетварь тварь, дети мои?
из зала:
- Тварь батюшка, и ещё какая!

Отправлено: 07:47 27-12-2010 | Исправлено: Victor_VG, 07:56 27-12-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
ASE_DAG
 
Давай заодно для тех, кому надо файлы на обновление постоянно проверять дадим рабочий вызов:

Код:
wget -bNcqkK --restrict-file-names=windows --retry-connrefused -nd -nH -P <каталог назначения> <url>

Ограничение - скачанные файлы не удалять! Wget сравнивает их с лежащими на серверах по дате-времени создания и размеру. У меня сия радость сидит давно и надёжно в качестве cron-задачи и обновляет файлы. Интервал запуска определяем сами по частоте обновления файлов на сервере. Данный вызов адаптирован под ограничения на допустимые имена файлов Windows.

Отправлено: 18:49 10-01-2011 | Исправлено: Victor_VG, 23:06 10-01-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Аэээ... Вы это к чему?
 
P.S. А что такое -kk? В смысле -kK?

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

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

Редактировать | Цитировать | Сообщить модератору
ASE_DAG
 
Это был ответ на этот батник. Особенно учитывая приглашение к использованию эксплойта.
 
А -kk - это да, опечатка. Спасибо что заметил, поправил.

Отправлено: 21:44 10-01-2011 | Исправлено: Victor_VG, 21:48 10-01-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
Не пугайте меня так. :) Вы ко мне обращаетесь — я начинаю искать, на какой мой пост («заодно») это ответ.
Еще и эксплойт какой-то.
 
А строчку утянул к себе в личный блокнотик. ;)

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 22:14 10-01-2011
Victor_VG

Редактировать | Цитировать | Сообщить модератору
ASE_DAG
 
Просто случайно так вышло - вроде вместе об одной идее мы и думали, я вытащил то что у меня уже сто лет на демоне крутится. Хотя, честно говоря сейчас более трудоёмкой задачкой занят - компилятор затеял перебрать. Вроде осталось только маны переписать и свернуть установку, а маны я не столь большой любитель писать.

Отправлено: 23:04 10-01-2011
VitK



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

Всего записей: 2307 | Зарегистр. 16-01-2003 | Отправлено: 19:46 03-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitK
Да, ключ -nc. Проверка по размеру файла.
 
Добавлено:
А если грузите с FTP и хотите сравнивать по дате, то -N.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 19:57 03-02-2011 | Исправлено: ASE_DAG, 21:29 03-02-2011
VitK



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ASE_DAG
А если размер всегда тот же, только меняется дата создания?
 
Т.е. можно использовать параметры так: wget -N -nc .... ?

Всего записей: 2307 | Зарегистр. 16-01-2003 | Отправлено: 21:15 03-02-2011 | Исправлено: VitK, 21:27 03-02-2011
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
VitK
> А если размер всегда тот же
Удивительно.
 
> только меняется дата создания?
То ключ -N. Только не «дата создания» (это что-то из доса), а дата модификации.
 
Добавлено:
> можно использовать параметры так: wget -N -nc
Нет, нельзя. И в мане об этом сказано.

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

Всего записей: 8468 | Зарегистр. 11-05-2005 | Отправлено: 21:27 03-02-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:42:56 (c) xForumSaver