Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Открыть новую тему     Написать ответ в эту тему

GaDiNa



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
[ UNIX Shell ] || [ Рекурсивная загрузка веб-сайтов ] — родительские ветки.
 
GNU Wget

GNU Wget — это свободная неинтерактивная утилита для скачивания файлов по HTTP, HTTPS, FTP и FTPS (и только), обладающая самым базовым функционалом загрузки одиночных файлов и рекурсивной загрузки сайтов (HTTP) и директорий (FTP).
 

| Офсайт | Википедия | Фрешмит | Опен-хаб (бывш. Охлох) | Мануал | Ман | Ман (русск., устар.) | --help (русск.) |

 
Где взять.
Под GNU — уже стоит. Под FreeBSD — есть в портах. Под [Mac] OS X — собрать ванильный.  
Под Windows есть варианты: Cygwin | GNUWin32 (учитывайте зависимости) | Wget + OpenSSL by GetGnuWin32  | by TumaGonx Zakkum (он же osspack32 и The Moluccas  |  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»; у Хрома — «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) и многими другими протоколами на более низком уровне.
wput — клон wget для аплоада файлов на удаленные FTP(S) сервера.
axel — клон wget для многопоточной загрузки одиночных файлов по протоколам HTTP(S) и FTP(S). Порты для Windows: 2.4, 2.16.1
 
Разное.
GUI для Wget’а
 

Смело правьте и дополняйте шапку, однако не забывайте отписываться об исправлениях и сохранять исходный вариант под #.

Всего записей: 1528 | Зарегистр. 17-06-2003 | Отправлено: 13:39 08-11-2003 | Исправлено: mithridat1, 08:56 13-02-2019
vcrank

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

Цитата:
Warning: wildcards not supported in HTTP.
--2018-08-30 12:42:38--  https://doc-14-24-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/ho56a2ae2vf2h2a56hn9l35b4ajb0vef/1535608800000/16614494524241560895/*/18qK7Fwcd62wKW8Y0Guqa8YbzA6XS24e7?e=download
Resolving doc-14-24-docs.googleusercontent.com (doc-14-24-docs.googleusercontent.com)... 173.194.44.44, 173.194.44.43, 173.194.44.42, ...
Connecting to doc-14-24-docs.googleusercontent.com (doc-14-24-docs.googleusercontent.com)|173.194.44.44|:443... connected.
HTTP request sent, awaiting response... 503 Service Unavailable
2018-08-30 12:42:39 ERROR 503: Service Unavailable.

 
Да и к тому же регулярно скачивать файлы не получится - ссылка будет меняться

Всего записей: 861 | Зарегистр. 24-10-2005 | Отправлено: 10:44 30-08-2018
qw12



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

Код:
wget --no-check-certificate "https://docs.google.com/uc?export=download&id=10OLJl3R3Vm2XkCzY8fO96HEVN1E5GOeQ" -O "7.Общий прайс-лист Ростов-010203-30-08-18.xls"

 
Аналогично Москва.

Всего записей: 433 | Зарегистр. 04-06-2001 | Отправлено: 10:58 30-08-2018
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vcrank
qw12
Цитата:
wget --no-check-certificate "https://docs.google.com/uc?export=download&id=10OLJl3R3Vm2XkCzY8fO96HEVN1E5GOeQ" -O "7.Общий прайс-лист Ростов-010203-30-08-18.xls"
Лучше вместо -O добавить --content-disposition

Всего записей: 7860 | Зарегистр. 11-03-2002 | Отправлено: 11:05 30-08-2018
vcrank

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

Цитата:
Лучше вместо -O добавить --content-disposition

Так совсем ничего не качает. Даже пустой файл не создаёт

Всего записей: 861 | Зарегистр. 24-10-2005 | Отправлено: 19:47 30-08-2018
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vcrank
Все качает, вы просто что-то не так заменили
Цитата:
wget --no-check-certificate --content-disposition "https://docs.google.com/uc?export=download&id=10OLJl3R3Vm2XkCzY8fO96HEVN1E5GOeQ"

Всего записей: 7860 | Зарегистр. 11-03-2002 | Отправлено: 20:22 30-08-2018
vcrank

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

Всего записей: 861 | Зарегистр. 24-10-2005 | Отправлено: 21:19 30-08-2018
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vcrank
Портянка длинная, но почему сверху нет ключей запуска? Они идут перед:
DEBUG output created by Wget
 
И откуда:
X509 certificate successfully verified and matches host
 
Если запуск с ключом --no-check-certificate

Всего записей: 7860 | Зарегистр. 11-03-2002 | Отправлено: 21:51 30-08-2018
vcrank

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pasha_ZZZ
Я хз почему так. Alex_Piggy подсказал запустить с "--config=nul" и  пошло скачивание.
 
Вот только скоро файлы заменят и ссылки будут другие...
Если открыть эту папку с браузере без авторизации в гугле, то есть кнопка скачать всё. Может как-то можно нажать её?, чтобы всё скачалось...

Всего записей: 861 | Зарегистр. 24-10-2005 | Отправлено: 22:26 30-08-2018
Pasha_ZZZ



Gold Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vcrank
Цитата:
Я хз почему так. Alex_Piggy подсказал запустить
Потому что у вас в локальном вашем конфиге прописано хз что

Всего записей: 7860 | Зарегистр. 11-03-2002 | Отправлено: 22:48 30-08-2018
cbah

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
уважаемые, как вгетом загрузить все файлы аудиокниги по адресу https://get10.aknigi.club/b/35869/U1lig7wRH8w8BS4dv1KK49HbKkAUQ-wLZ3kzLn7dKzE,/01-01-01.mp3, где все цифры в названиях мп3 файлов меняются? спасибо.

Всего записей: 424 | Зарегистр. 13-11-2007 | Отправлено: 12:49 04-10-2018 | Исправлено: cbah, 17:16 04-10-2018
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
cbah
Да так и загружать, wget url. Ссылки эти достаточно долго живут. Если больше в интернете этой аудиокниги нигде нет, кроме как на audioknigi.club, то алгоритм у меня на смартфоне(Android/Chrome/Termux/bash) приблизительно такой:
 
- Отключаю загрузку медиафайлов и их автоматическое проигрывание в браузере(чтоб звуки телефон не издавал, необязательно)
- Ссылки на главы там подгружаются динамически, скриптом. При скачивании страницы в ней будет только одна ссылка вышеприведенного Вами вида. Сразу все ссылки на всю книгу  одним махом на этом сайте не получить, к сожалению. Тыркаю пальцем по каждой главе, она выделяется жирным шрифтом(значит url этой главы сейчас в коде страницы). Потом в правом верхнем углу Хрома тыркаю пальцем в три точки и в открывшемся меню тыкаю по значку "стрелочка вниз"(рядом со звездочкой Избранного). Страница скачивается в папку /sdcard/Download. И так для каждой главы. В папке загрузки в итоге куча файлов вида "Автор - произведение (1).mhtml",  "Автор - произведение (2).mhtml" и т.д.
- Ну и в консоли перехожу в папку загрузки и даю команду:  
cat *.mhtml  | grep -a -o "https.*\.mp3">links.txt
- Потом wget -i links.txt и вуаля.
 
 

Всего записей: 1629 | Зарегистр. 08-12-2004 | Отправлено: 01:15 15-11-2018 | Исправлено: igor_andreev, 01:35 15-11-2018
mithridat1



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

Всего записей: 4077 | Зарегистр. 05-01-2006 | Отправлено: 13:34 30-11-2018
skipik



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://eternallybored.org/misc/wget/releases/wget-1.20-win32.zip
https://eternallybored.org/misc/wget/1.20/32/wget.exe
https://eternallybored.org/misc/wget/releases/wget-1.20-win64.zip
https://eternallybored.org/misc/wget/1.20/64/wget.exe
Собрали наконец новую версию.
P.S. XP support dropped - поддержка XP прекращена.

Всего записей: 2663 | Зарегистр. 07-07-2006 | Отправлено: 13:19 05-12-2018
NikosColev



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите можно ли wget выкачать .ts-файлы потоковой трансляции видео задав ему ссылку на .m3u8?
Научите как, плз.
 
Сейчас качаю их ffmpeg, но он собирает их в контейнер на лету, ввиду чего иногда случаются ошибки. Кроме того, приходится ловить время начала трансляции, что несколько неудобно, надеюсь что wget возможно запустить на загрузку до её начала.

Всего записей: 353 | Зарегистр. 31-07-2002 | Отправлено: 21:38 06-12-2018 | Исправлено: NikosColev, 21:39 06-12-2018
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NikosColev
Необязательно сохранять все сегменты, можно поступить так http://forum.ru-board.com/topic.cgi?forum=5&topic=37082&start=1500#3
Я бы сказал что это равносильно сохранению сегментов и последующей их склейке.
 
Добавлено:
А насчет ошибок в сохраненном потоке то думаю что все дело в трансляции, а не в FFmpeg. Только давайте в этой теме флудить не будем.

Всего записей: 4077 | Зарегистр. 05-01-2006 | Отправлено: 23:34 06-12-2018 | Исправлено: mithridat1, 23:55 06-12-2018
NikosColev



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1
Вы правы, ошибки вероятно наведенные. И все с которыми я встречался не обнаружить, если не редактировать видео, т.к. плеером все воспроизводится прекрасно.

Цитата:
Я бы сказал что это равносильно сохранению сегментов и последующей их склейке.

Да, понятно. Просто я хотел бы, по крайней мере изначально, некоторое время понаблюдать .ts-файлы, - собрать их в контейнер не трудно.
 
Спасибо за ссылку, отличная тема, только мои эксперименты пока не дают необходимых результатов, базовых навыков не хватает. М.б. Вы поможете мне сформулировать команду wget для разных трансляций с постоянного адреса .m3u8?
 
Ссылка:

Всего записей: 353 | Зарегистр. 31-07-2002 | Отправлено: 01:32 07-12-2018 | Исправлено: NikosColev, 00:45 09-12-2018
NikosColev



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
UPD:Вопрос снят, благодаря уважаемому Alex_Piggy, с его кодом и weget выкачивает все .ts'-ки, и ffmpeg научился качать трансляции в автономном режиме!
Respect.

Всего записей: 353 | Зарегистр. 31-07-2002 | Отправлено: 00:55 09-12-2018
mithridat1



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

Цитата:
 благодаря уважаемому Alex_Piggy, с его кодом и weget выкачивает все .ts'-ки, и ffmpeg научился качать трансляции в автономном режиме!  

Так поделитесь им с сообществом, не держите "в себе".
Я примерно знаю как это можно сделать, но у меня не было времени заняться вопросом плотнее. Возможно, решение Alex_Piggy эффективнее.
И ссылку на трансляцию нет смысла скрывать, она не является секретной.

Всего записей: 4077 | Зарегистр. 05-01-2006 | Отправлено: 07:49 09-12-2018 | Исправлено: mithridat1, 07:51 09-12-2018
VecH



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Мне тоже очень любопытно как ты TS-ки дергаете wget-ом

Всего записей: 2315 | Зарегистр. 18-02-2003 | Отправлено: 07:51 09-12-2018
NikosColev



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1
Цитата:
Так поделитесь им с сообществом, не держите "в себе".  
Я примерно знаю как это можно сделать, но у меня не было времени заняться вопросом плотнее. Возможно, решение Alex_Piggy эффективнее.
Так поделитесь с сообществом, не держите "в себе")))
 
Для автозагрузки пакетов потока из плейлиста Wget'ом, Alex_Piggy предложил мне использовать пакетный файл следующего содержания, цитирую кумулятивно:
Цитата:

Код:
@echo off
cd /d "%%~dp0"
set "opt= --user-agent="Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.18" --save-cookies=cookies.txt --keep-session-cookies --load-cookies=cookies.txt"
 
rem set "URL=https://domen.com/folder_1/index.m3u8"
rem wget %opt% %URL% -O index0.m3u8
rem for /f %%i in ('findstr "m3u8" index0.m3u8') do set "URL1=!URL:index.m3u8=%%i!"
 
set "URL1=https://domen.com/folder_1/folder_2/index.m3u8"
 
:loop
wget %opt% %URL1% -O- | findstr ".ts" | wget -nc %opt% -x -B %URL1% -i-
ping 127.255.255.255 -n 1 -w 1000 > nul
goto :loop
"Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.18" - замените на привычный Вам User-Agent.
 
Сначала скачивается плейлист по короткому адресу, затем из него извлекается длинный.
"wget %opt% %URL1% -O- | findstr ".ts" | wget -nc %opt% -x -B %URL1% -i-" - это скачать длинный плейлист; выделить из него строки содержащие ".ts"; скачать эти файлы, предполагая что они находятся в папке с длинным плейлистом.
Если есть длинный - с ts - то получается так ("rem" в начале строки означает что это комментарий ; эта строка не выполнятся.).
 
И мне кажется, что "-nc" (не скачивать уже существующие файлы) лучше заменить на "-Nc" (проверять размер и дату у файла) для старого wget или "-Nc --no-if-modified-since" для нового wget (если в wget --help есть упоминание --no-if-modified-since).
Если, кроме меня, найдутся желающие сохранить поток по частям, то данное решение прекрасно с этим справляется.
 
Вопрос к знатокам, отличается ли Wget от FFmpeg по ресурсоемкости? - я недолго экспериментировал со скачкой потокового видео Wget, но качая четыре потока столкнулся со 100% загрузкой ЦП, что после FFmpeg меня сильно удивило.

Всего записей: 353 | Зарегистр. 31-07-2002 | Отправлено: 14:08 09-12-2018 | Исправлено: NikosColev, 14:31 09-12-2018
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150

Компьютерный форум Ru.Board » Компьютеры » Программы » Wget

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru