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

Редактировать | Цитировать | Сообщить модератору
korosya
 
Нет, "довески" и ляпы там уже привычное дело.

Отправлено: 16:41 06-04-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не располагает ли кто-нибудь кодом регистрации - с получением куки - на фейсбуке (vk также бы приветствовалось)? Гуглил, но там, похоже, всё устаревшее.

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 15:38 09-04-2015 | Исправлено: D1D1D1D, 15:40 09-04-2015
Victor_VG

Редактировать | Цитировать | Сообщить модератору
D1D1D1D
 
А вопрос как относится к теме? По моему он тут выглядит странно.

Отправлено: 21:33 10-04-2015
D1D1D1D

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG
 
Не настаиваю, но это как бы вопрос настройки. Да и выше не редкость были аналогичные вопросы.

Всего записей: 392 | Зарегистр. 04-04-2010 | Отправлено: 01:56 11-04-2015
Victor_VG

Редактировать | Цитировать | Сообщить модератору
D1D1D1D
 
Странно как то. Лично я не вижу такой взаимосвязи.

Отправлено: 03:15 11-04-2015
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Мальчишки, а какая версия спосбна качать
1. по ссылкам с кириллицей , например
http://найти-в-интернет.рф/insertions/pogoda/img_kartu_snimki/osad.gif
2. и по ссылке https

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 21:30 11-04-2015
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sis_terr
1. 1.12 и выше.
2. В обозримом прошлом — любая, но она, очевидно, должна быть собрана с поддержкой GnuTLS или OpenSSL.

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

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

Редактировать | Цитировать | Сообщить модератору
sis_terr
 
Из шапки сборка от Alex_Piggy специально дорабатывалась для работы с кириллицей, а HTTPS обходится вообще просто - ключ --no-check-certificate в комстроке, хотя Wget с ним работает если его собрать с поддержкой SSL (это почти все сборки), если поддержки SSL нет, то по команде wget --version в списке не будет отображено +ssl/openssl  (выдача большая типа этой): пример

Отправлено: 21:59 11-04-2015 | Исправлено: Victor_VG, 22:00 11-04-2015
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sis_terr
Запусти wget -V, после версии будет что-то типа такой строчки
Цитата:
+digest +https +ipv6 +iri +large-file +nls +ntlm +opie +ssl/openssl
С +https и +ssl/openssl все понятно, +iri - поддержка адресов на разных языках

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 22:01 11-04-2015
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
да, старая версия у меня 1.11
 
GetGnuWin32 затребовал кучу дллок
 
Wget + OpenSSL by GetGnuWin32 испугал размером
 
by Bart Puype - Not Found
 
by osspack32 не захотел качать кириллицу
 
by Alex_Piggy, кириллицу качает , а https  не хочет
*
Сейчас буду разбираться по новым ответам
*
это последний так выдал

Цитата:
GNU Wget 1.16.1.36-4781-dirty Ru-Board Variant built on mingw32.
+digest +https +ipv6 +iri +large-file +nls +ntlm +opie -psl +ssl/openssl  

 
но https не качает
 
*

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 22:25 11-04-2015 | Исправлено: sis_terr, 22:37 11-04-2015
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sis_terr
Что значит "не качает"? Вывод вгета покажи. Скорее всего сертов нет, проверь с ключом --no-check-certificate

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 22:56 11-04-2015
Victor_VG

Редактировать | Цитировать | Сообщить модератору
sis_terr
 
Я вам прямо написал

Цитата:
Из шапки сборка от Alex_Piggy специально дорабатывалась для работы с кириллицей, а HTTPS обходится вообще просто - ключ --no-check-certificate в комстроке
 
, иначе даже при наличии библиотек (их лучше взять тут, текущая версия 1.0.2а) OpenSSL и отсутствии файла ca-bundle.crt OpenSSL может выдать ошибку т.к. не сможет проверить подлинность сервера, а вы как я думаю задали комстроку типа wget <url> вместо wget --no-check-certificate <допключи если нужны> <URL> и получили законную ошибку. Говорят иногда чтение документации сберегает массу времени и нервов.

Отправлено: 23:11 11-04-2015
sis_terr



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

Victor_VG
Ниннада ругаться) я всё прочитала что дали наставники, по всем ссылкам прошлась
Я девочка исполнительная и не глупая, команду вбила, всё заработало)
Но у нас изнуряющаяя жара, мозги слегка плавятся, три часа ночи было.
После душа можно было немного поумничать, вот решила разобраться  
Благодарю за помощь, стало работать)
Довольная ещё раз побежала в душ и упала попытаться досмотреть сны,  
поэтому отчёт не дописала

Цитата:
 хотя Wget с ним работает если его собрать с поддержкой SSL (это почти все сборки), если поддержки SSL нет, то по команде wget --version в списке не будет отображено +ssl/openssl

но согласно этим Вашим словам я поняла что должно работать без команды --no-check-certificate

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

Редактировать | Цитировать | Сообщить модератору
sis_terr
 
Я не ругался - ворчал ибо идиот-сосед за стенкой в четыре утра решил бетон перфоратором сверлить. Понятно, что до полиции дело не дошло, а вот очередь "Кто последний морду бить?" выстроилась добрая.
 
Поняли вы правильно ибо логика тут простая - если используется HTTS/SCP/SFTP/FTPS протоколы, то априори считается что часть данных зашифрована, а значит чтобы избежать возможности третьего лица (злоумышленника) влезть в разговор "клиент-сервер" до получения с сервера ключей шифрования проверяется подлинность сервера путём проверки его персонального сертификата с помощью корневых центров сертификации ибо он может быть отозван, просрочен или быть подписан владельцем сервера (самоподписанный), а ключ --no-check-certificate говорит Wget "считая подлинность сервера установленной принять с него ключ шифрования и выполнить заданные в команде операции" и если мы его задали, то проверка подлинности обходится, но и риск подмены сервера резко возрастает т.к. в обычном случае злодей должен подделать ответы центра сертификации и построить систему ложных серверов, а во втором просто подменить подлинный сервер на свой....

Отправлено: 17:22 12-04-2015 | Исправлено: Victor_VG, 17:23 12-04-2015
boi1eI

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_VG (17:22 12-04-2015)
Цитата:
бо идиот-сосед за стенкой в четыре утра решил бетон перфоратором сверлить.

И вместо хладнокровного осмысливания... везде есть специалисты. В том числе и специалисты поуспокаиванию, усмирению, подавлению, устранению. "Веть мир не так уж плох, если уметь его готовить"
Соседи - первый риск, потом идут уж протоколы, шифрование. Неуловимый Джо - он никому не нужен.

Всего записей: 1343 | Зарегистр. 02-10-2014 | Отправлено: 17:58 12-04-2015
Victor_VG

Редактировать | Цитировать | Сообщить модератору
boi1eI
 
Наглый Джо - это же самый ценный ресурс общества, и сдай его в полицию, а кому тогда морду бить?

Отправлено: 18:12 12-04-2015
sis_terr



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

Цитата:
ибо идиот-сосед за стенкой в четыре утра решил бетон перфоратором сверлить

 
Каакое счастье что у нас ближайшие соседи за сто метров)
Хоть тропические ночи очень шумные, насыщенные разными звуками,
но это не сравнить с перфоратором за стеной))
 

Цитата:
Поняли вы правильно ибо логика тут простая

Как я поняла что если по запросу  wget -V появится в строке +ssl/openssl  
то по  https должно качать без команды --no-check-certificate
 
или я что то недопоняла
но у меня не качало без этой команды

Всего записей: 1271 | Зарегистр. 20-12-2007 | Отправлено: 21:38 12-04-2015
Pasha_ZZZ



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
sis_terr Чтение сберегает массу всего...
Цитата:
файла ca-bundle.crt

Цитата:
чтение документации сберегает массу времени и нервов

Всего записей: 3758 | Зарегистр. 11-03-2002 | Отправлено: 21:54 12-04-2015
srkr

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как использовать ключи:  
 --http-user=USER (set http user to USER)  
 --http-password=PASS (set http password to PASS)  
   
 Если например запросить страницу регистрации mail.ru или yandex.ru, то wget подставит USER и PASS в соответствующие поля? Произойдет регистрация и wget скачает страницу после регистрации?

Всего записей: 48 | Зарегистр. 14-12-2009 | Отправлено: 12:13 19-05-2015
Victor_VG

Редактировать | Цитировать | Сообщить модератору
srkr
 
А ручками подставить значения в команды не пробовали?

Отправлено: 13:51 19-05-2015
Открыть новую тему     Написать ответ в эту тему

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