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



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

Цитата:
когда я пытаюсь создать файл с именем .wgetrc виндоус на меня ругается, что "следует ввести имя файла".

Качать FAR-менеджер? Зачем такой изврат? Файл создаётся без проблем средствами винды:

Код:
copy con .wgetrc

Ctrl+Z
Enter

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 15:27 22-03-2010 | Исправлено: BakLAN, 15:28 22-03-2010
SomeCherry

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну ладно, допустим, что не существует возможности взять логин и пароль прокси из системы.
Но может быть хотя бы можно как-то сделать, чтоб он их _запрашивал_? (а не просто тупо писал 403 "ISA сервер запретил этот URL")

Всего записей: 17 | Зарегистр. 18-03-2010 | Отправлено: 11:52 23-03-2010
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста какой командой Wget можно скачать сайт доступный по адресу http://ftp.byfly.by/ , доступ осуществляется по http протоколу, хотя ресурсы ftp , хочу зазеркалировать весь сайт.

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 09:29 25-03-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olemel
А чем ftp://ftp.byfly.by/ не устраивает?

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 18:23 25-03-2010
Consider

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть проблема, надо на windows платформе иметь зеркало удаленного ftp сервера работающего в "активном режиме" (пассивный режим специально отключен), дело даже не в режиме работы ftp сервера, вопрос в том как с помощью wget получить полноценное зеркало? wget не удаляет старые файлы(папки) на "назначении", если их удаляют в "источнике"

Всего записей: 11 | Зарегистр. 01-01-2006 | Отправлено: 04:20 01-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
мальчишки, подскажите, а то курение мануала не привело к просветлению    
скачиваю некоторые блоги с nnm.ru
параллельно, сей папке, в смысле рядом создаются совсем ненужные папки rutube.ru, top100.rambler.ru, www.youtube.com и тп
манипулированием командами --exclude-domains list и -Dlist  
не удалось избавиться от ненужного.
Как правильно сделать?

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 00:27 02-04-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
какая именно команда на скачивание даётся?

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 08:08 02-04-2010
sis_terr



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

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 10:00 02-04-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
Вобще я подразумевал полную, которая используется, в виде
Код:
wget -param1 -param2 ... http://чёто-там

Ключик -H подразумевает хождение по ссылкам за пределы текущего домена. Оно действительно необходимо?

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 11:58 02-04-2010 | Исправлено: iglezz, 11:58 02-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
iglezz
моя запись в бат-файле без моих мучений с  --exclude-domains и -D
wget.exe -c -H  -p -k -i  http://nnm.ru sis-terr:pass@host/ robots=off nnm.ru C:\#\links.txt   -PC:\#\D
кроме основного домена надо чтобы скачивалось из img**.nnm.ru
**там могут быть разные цифры

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 18:07 05-04-2010
iglezz

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
В каком формате задавались ключи --exclude-domains и -D?

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 18:44 05-04-2010 | Исправлено: iglezz, 18:52 05-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
-D img**.nnm.ru,nnm.ru
--exclude-domains top3.mail.ru,top.mail.ru .....
вроде сейчас так работает все как необходимо, видать, для просветления,
 надо было покурить чистого Крымского воздуха на выходных  

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 19:33 05-04-2010 | Исправлено: sis_terr, 19:48 05-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А можно как то указать размер и положение окошка Wget?

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 13:54 24-04-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
sis_terr
 
Настройками консоли можно. Любое консольное приложение их имеет. Это ключи вида [HKEY_CURRENT_USER\Console\<имя приложения>] именно в них хранятся настройки конкретных консольных приложений если их выставить вручную, иначе используются общие настройки консоли из ключа [HKEY_CURRENT_USER\Console].

Отправлено: 15:12 24-04-2010 | Исправлено: Victor_VG, 15:13 24-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Victor_VG
Спасибо, разобралась методом  научного тыка )

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 20:23 24-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
еще можно оказалось сделать так :
создать ярлык, поставить необходимые настройки ,  
в реестре создастся дополнительный раздел,
экспортируем файл .reg нового раздела, раздел удаляем,
в .reg файле правим путь \Console, импортируем

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 00:22 25-04-2010
kilserg



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Прикручиваю WGet к лисе через FlashGot в винде.
С большинством ссылок нормально работает. Но попалась одна такая, которая через внутренний качальщик лисы идет, а через ВГет - нет
 
Вот ссылка:
http://ia341329.us.archive.org/0/items/TheConcertCompanion/TheConcertCompanion.djvu
 
вызов вгета:
wget.exe -c --directory-prefix="C:\Tmp\1" --input-file="C:\docs\SchizoID\Local Settings\Temp\flashgot.PROFILE\flashgot-9.fgt" --referer="http://ia341329.us.archive.org/0/items/TheConcertCompanion/" --load-cookies="C:\docs\SchizoID\Local Settings\Temp\flashgot.PROFILE\cookies-9" --header="Cookie:PHPSESSID=ca9d332e49dfd7c05fb5016d1a40659f; " --post-data= --append-output="C:\docs\SchizoID\LOCALS~1\Temp\LOG\downloads.log" --user-agent="Mozilla/5.0" -t5
 
Вот лог:

Код:
 
--2010-04-25 16:07:32--  http://ia341329.us.archive.org/0/items/TheConcertCompanion/TheConcertCompanion.djvu
Resolving ia341329.us.archive.org... 207.241.230.223
Connecting to ia341329.us.archive.org|207.241.230.223|:80... connected.
HTTP request sent, awaiting response... 405 Not Allowed
2010-04-25 16:07:33 ERROR 405: Not Allowed.
 

 
Вот описание ошибки из вики:
Каждый сервер обязан поддерживать как минимум методы GET и HEAD. Если сервер не распознал указанный клиентом метод, то он должен вернуть статус 501 (Not Implemented). Если серверу метод известен, но он не применим к конкретному ресурсу, то возвращается сообщение с кодом 405  (Method Not Allowed). В обоих случаях серверу следует включить в сообщение ответа заголовок Allow со списком поддерживаемых методов.
 
Смотрел параметры вгета, гуглил, но не починил
Кто-нибудь знает как исправить?
 
UPD
Разобрался. Ошибка из-за пустого параметра --post-data=. Если убрать - все нормально. Хотя с других сайтов и так качалось, и я думал, что что-то специфичное не передал.

Всего записей: 12 | Зарегистр. 20-10-2009 | Отправлено: 13:16 25-04-2010 | Исправлено: kilserg, 13:27 25-04-2010
Petrik_Pjatochkin



Full Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите плиз. Хочу скачать блог http://www.liveinternet.ru/users/ХХХХХХХ/
Нужно скачать только странички, которые начинаются с этого адреса, т.е. например такого типа: http://www.liveinternet.ru/users/ХХХХХХХ/post123456789/
 
Какие нужно задать параметры? Спасибо!

Всего записей: 588 | Зарегистр. 03-12-2007 | Отправлено: 14:15 25-04-2010
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Petrik_Pjatochkin
создай текстовый файл со списком страниц
http://www.liveinternet.ru/users/ХХХХХХХ/page ххх.shtml
и пусть Wget качает с этого списка

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 13:14 26-04-2010 | Исправлено: sis_terr, 13:14 26-04-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
kilserg
 
И иногда надо ставить ключ --no-check-certificate, например на сайте Зверя для скачивания расширений он нужен.

Отправлено: 22:38 26-04-2010
Открыть новую тему     Написать ответ в эту тему

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