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

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

Цитата:
У меня вопрос в тему, я знаю что у последних версий wget, коды возврата после выполнения 0-9, подскажите пожалуйста как их можно использовать в командном файле?


Код:
wget http://forum.ru-board.com
IF ERRORLEVEL 9 echo "errorlevel = 9"
IF ERRORLEVEL 0 echo "errorlevel = 0"

 
Вобще if /? в консоли расскажет подробнее как этим пользоваться

Всего записей: 573 | Зарегистр. 18-02-2003 | Отправлено: 13:22 10-12-2009 | Исправлено: iglezz, 13:24 10-12-2009
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
iglezz Спасибо что напомнили простые истины, однако вопрос был немного другой, что обозначают коды возврата 0,1,2,3,4,5,6,7,8,9 (вроде их столько в последней версии wget), какой код возвращается при какой неудаче, а как их использовать я уже понял

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 14:25 10-12-2009
juvaforza

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

Всего записей: 2881 | Зарегистр. 25-11-2005 | Отправлено: 14:52 10-12-2009
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
juvaforza Спасибо, то что надо

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 20:49 10-12-2009
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Поделитесь, у кого  есть готовый скрипт для выкачивания антивирусных баз Eset NOD32, естественно с использованием wget

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 06:58 15-12-2009
jMurr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
а можно wget прикруть как даунлодер к фаерфоксу вместо стандартного?

Всего записей: 127 | Зарегистр. 26-09-2006 | Отправлено: 01:06 18-12-2009
Crazy_Master



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно, например с помощью расширения FlashGot.

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 04:39 18-12-2009
jMurr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Crazy_Master?
а можно подробнее, пошагово?

Всего записей: 127 | Зарегистр. 26-09-2006 | Отправлено: 17:33 19-12-2009
Crazy_Master



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну у меня настроено так вот.
Конкретные настройки для форточек не могу подсказать, но должно быть примерно так, только естественно вместо konsole там наверное cmd.exe и ключи вместо --hold и -e другие наверное (cmd.exe --help или хз).

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 19:14 19-12-2009
jMurr



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А что это за параметры в квадратных скобочках?
---
спасибо!
всё получилось
для форточек, если хочется посмотреть статистику wget то её можно сохранять в лог-файл

Всего записей: 127 | Зарегистр. 26-09-2006 | Отправлено: 15:02 21-12-2009 | Исправлено: jMurr, 15:23 21-12-2009
Crazy_Master



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

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 15:07 21-12-2009
olemel

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Страницу назад писал  
wget -N --retr-symlinks ftp://ftp.drweb.com/pub/drweb/cureit/launch.exe
очень странно это перестало работать, выдает ошибку о том что файл не найден или долго думает и нечего не происходит. Можно как нибудь это пройти? Есть вариант попробывать скачивать последнюю cureit в папке озаглавленной как дата его создания но как получить адрес этой папки? Подскажите.

Всего записей: 18 | Зарегистр. 17-10-2009 | Отправлено: 14:17 22-12-2009
dimbat



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
olemel
Cureit теперь типа платный.  
Здесь можно его качнуть вроде как бесплатно, правда с геморроями. Нужно согласиться с лиц.соглашением и пойдет закачка. Второй раз уже не качает. Думаю, надо подождать чуть - как будут развиваться события. Утилита популярная, т.ч. наверняка обходы появятся скоро.
---
Фтп пашет, но с какими-то тормозами. То вообще не пускает, то пускает, но скачать нельзя. Может просто траблы и будет как и раньше свободная скачка...

----------
In Search We Trust

Всего записей: 986 | Зарегистр. 23-08-2003 | Отправлено: 15:04 22-12-2009 | Исправлено: dimbat, 15:48 22-12-2009
lwCad



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста. Как качать Wget через https://www.dreamspark.com/Products/ProductList.aspx.

Всего записей: 52 | Зарегистр. 21-12-2009 | Отправлено: 13:13 28-12-2009
den06051979



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста с программой wGet!
 
Мне нужно сделать зеркало с ftp на локальный диск.
Вот что я использую для этого, эта команда вызывается из bat файла:
"C:\Program Files\wGet\wget.exe" -m ftp://av.nero.com/v3/
но wGet ложит файлы в текущий каталог!!!
 
1. Как в командной строке указать путь куда ложить файлы локально?
2. Как мне проверить отработала ли эта команда нормально?
Может у кого уже есть готовый вариант, для того чтобы не изобретать велосипед!!!

Всего записей: 21 | Зарегистр. 21-12-2005 | Отправлено: 14:12 11-01-2010
dimbat



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

Цитата:
но wGet ложит файлы в текущий каталог!!!  

 
Ключ -P путь _до_нужного_каталога

----------
In Search We Trust

Всего записей: 986 | Зарегистр. 23-08-2003 | Отправлено: 14:20 11-01-2010
den06051979



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое!
А как проверить что эта команда отработала нормально?

Всего записей: 21 | Зарегистр. 21-12-2005 | Отправлено: 04:25 12-01-2010
Victor_VG

Редактировать | Цитировать | Сообщить модератору
den06051979
 
Код возврата анализируем. О содержит всю информацию о выполнении команды.

Отправлено: 07:41 12-01-2010
den06051979



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кому пригодится!
Вот что у меня получилось с использованием программы wget.exe:
----------------------------------------------------------------------------------------------------
@echo off
chcp 866
 
REM Задаём переменные
set path_wget="C:\Program Files\wGet"
set path_drw="C:\Program Files\DrWeb"
set path_base=D:\DrWebase
set path_ftp=ftp://av.nero.com
set path_v3=%path_ftp:~-11%
 
rem Копируем программу wGet в папку Program Files
xcopy wGet.exe %path_wget%\ /C /H /R /K /Y
 
rem Синхронизируем базы версии DrWeb v4.44 в локальную папку v3
%path_wget%\wget.exe -m %path_ftp%/v3/ -P %path_base%
 
IF %errorlevel%==0 goto :copy_base
 
goto :error
 
:copy_base
 
rem Удаляем старые базы из папки DrWeb
del /f /q %path_drw%\*.txt
del /f /q %path_drw%\*.vdb
 
rem Копируем скачанные базы в папку DrWeb
xcopy %path_base%\%path_v3%\v3\*.* %path_drw%\ /C /H /R /K /Y
 
goto :end
 
:error
echo ОШИБКА ДОСТУПА В ИНТЕРНЕТ !
 
:end
----------------------------------------------------------------------------------------------------

Всего записей: 21 | Зарегистр. 21-12-2005 | Отправлено: 08:00 12-01-2010
volgman

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Уважаемые Господа, помогите разобраться
 
пытаюсь скачать это: _http://anprioritet.irr.ru/
а получаю вот это: _http://irr.ru/
 
командная строка следующая:
wget.exe --directory-prefix=%QUOTE%c:\in1%QUOTE% http://anprioritet.irr.ru/ --no-check-certificate -o %QUOTE%c:\in1\in.log%QUOTE%
 
т.е. wget футболят несколько раз и подставляют для скачивания совсем другую страничку
при этом IE и Opera открывают ссылку корректно
 
как заставить wget закачать нужную страницу?     (лог-файл в наличии)

Всего записей: 1 | Зарегистр. 13-01-2010 | Отправлено: 11:40 13-01-2010 | Исправлено: volgman, 12:33 13-01-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:26 (c) xForumSaver