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



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
шапка включена

----------
Тень превращается в фантазии, таящиеся в глубине вашей души.
Пока идёшь ты среди теней, да не будет зла с тобой.

Всего записей: 24190 | Зарегистр. 06-04-2002 | Отправлено: 15:14 11-07-2006
Engaged Clown



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Собрал все оболочки в одном архиве. Можно выбрать GUI под себя из 6 доступных. Думаю можно внести в шапку.
 
_http://surfer56.googlepages.com/wget

Всего записей: 7019 | Зарегистр. 08-06-2006 | Отправлено: 20:58 07-08-2006 | Исправлено: Engaged Clown, 20:58 07-08-2006
BakLAN



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

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 18:01 13-08-2006
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Никто не в курсе где можно скачать wget win32 уже скомпилированный с поддержкой  
Socks v4 or Socks v5 proxy ? Имхо,этого вида прокси в программе очень не хватает.

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 16:36 05-09-2006
Crazy_Master



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А как решить такую проблему: WGet не понимает русских имён локальных папок. Например я создал конфигурационный файл wgetrc.cfg,положил в C:\Documents and Settings\USER\Рабочий стол\Download\
Cоздаю переменную окружения SET WGETRC=C:\Documents and Settings\USER\Рабочий стол\Download\
При запуске Wget говорит "No such directory"
Пробовал заключать путь в кавычки. Безрезультатно. Но если в строке все символы латинские и нет пробелов,работает.

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 16:40 07-01-2007
Engaged Clown



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Crazy_Master
Я вообще не понимаю этого - совать софт на рабочий стол и вообще называть папки советую на латинице..

----------
Опросы ru-board'а

Всего записей: 7019 | Зарегистр. 08-06-2006 | Отправлено: 18:21 07-01-2007
Crazy_Master



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я тоже не понимаю. Дело в том,что Wget я собираюсь использовать в интернет-клубе(нужно закачать сайт один). Вот я его и тестирую на своём компе в различных условиях. А там доступ пользователям разрешён только в  D:\Пользователь\
А ещё что-то у меня не получилось с конвертацией абсолютных ссылок в относительные,несмотря на то,что в конфигурационном файле указал convert_links=on
Запускаю с помощью bat-скрипта:

Код:
SET WGETRC=D:\SOFT\Program Files\INTERNET\WGet\wgetrc.ini
"D:\SOFT\Program Files\INTERNET\WGet\wget.exe" http://ru.php.net/manual/ru/

Конфигурационный файл:

Код:
reclevel =3
use_proxy = on
http_proxy = http://127.0.0.1:8080/
 
reject= gif,jpg,jpeg
no_parent=on
dirstruct=on
recursive=on
continue=on
convert_links=on

Всё загрузилось,но ссылки остались абсолютными,ведут на сайт.

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 19:37 07-01-2007 | Исправлено: Crazy_Master, 19:39 07-01-2007
Alex_Dragon



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Запускай вообще без wgetrc, параметры передай через ком. строку. в том же батнике. Сколько я помню, все параметры файла конфигурации можно передать через параметры командной строки, в общем виде это выглядит как
 
wget -e "команда"
 
Например  
 
wget -e "http_proxy=127.0.0.1:3128" — указываем использовать прокси-сервер, расположенный на локальной машине на соответсвующем порту (порт указать обязательно).
 
Сайты обычно зеркалю так:
 
wget -m -k -E -np адрес сайта
 
 
 

Всего записей: 368 | Зарегистр. 05-01-2002 | Отправлено: 20:31 07-01-2007 | Исправлено: Alex_Dragon, 23:30 07-01-2007
Crazy_Master



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Действительно,что я раньше об этом не подумал?!
А как указать в какую директорию сохранять скаченное? Что-то я в мануале не смог найти...

Всего записей: 656 | Зарегистр. 30-12-2006 | Отправлено: 22:26 09-01-2007 | Исправлено: Crazy_Master, 00:55 11-01-2007
BakLAN



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Crazy_Master
Если ты зеркалишь сайт, Wget создаст тебе в той же папке, что и сам находится подпапку с названием сайта, а в ней всю структуру зеркалируемого сайта. Если хочешь, чтоб сохранял в другое место, тогда так:
 
Wget -свои - ключи http://www.site.com -P диск:\место, куда хочу сохранить

Всего записей: 2788 | Зарегистр. 15-12-2003 | Отправлено: 20:41 28-01-2007
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Снова хочу поднять вопрос про бинарник Wget Win32 с поддержкой Socks v5.Никто не встречал такую сборку ?

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 10:04 29-01-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mithridat1
Да вроде нет такой сборки. Можно попробовать прикрутить через проги типа FreeCap или SocksCap

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 13:33 29-01-2007
mithridat1



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Ну,это я знаю.Но хотелось бы иметь только один бинарник,тем более что соксификаторы не всегда корректно работают.Знаю,что возможно пересобрать wget с поддержкой Socks и даже видел такие сборки под OS/2,но вот под Win32 таковых пока не замечал...

Всего записей: 3469 | Зарегистр. 05-01-2006 | Отправлено: 11:00 30-01-2007
Tulosha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
На FTP в каталоге есть файлы prz0206.zip, prz0207.zip, prz0208.zip и т.д где 0208 - дата файлов в архиве. Вопрос: возможно ли мне скачивать wget-ом только один файл - последний.

Всего записей: 8 | Зарегистр. 13-02-2007 | Отправлено: 13:36 13-02-2007
oie71

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть такой батник:
 
set http_proxy=server3:3128
wget --proxy --no-cache --proxy-user=wget --proxy-password=wget http://noc.ix.net.ua/ua-list.txt --output-document=uaix.ip
 
 
Руками запускаю - работает.
Виндовым шедулером (XP SP2) - говорит "Прошлый результат 0х1" и ничего не скачивается.
 
Права на батник - админ домена.
 
Роспрямите руки

Всего записей: 65 | Зарегистр. 09-08-2006 | Отправлено: 14:40 13-02-2007
oie71

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вопрос снимается
На wget нужен был полный путь

Всего записей: 65 | Зарегистр. 09-08-2006 | Отправлено: 09:57 14-02-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Научили таки wget брать название файла из Content-Disposition Давно уже пора. Если натравить 1.10.2 на адрес типа http://www.karaoke.ru/song/999/download/ то он сохраняет файл, как index.html

Цитата:
--23:52:57--  http://www.karaoke.ru/song/999/download/
           => `index.html'
Resolving www.karaoke.ru... 83.222.3.105
Connecting to www.karaoke.ru|83.222.3.105|:80... connected.
HTTP request sent, awaiting response...  
  HTTP/1.1 200 OK
  Date: Wed, 21 Feb 2007 20:46:28 GMT
  Server: Apache/1.3.34 (Unix) PHP/4.4.2
  Cache-Control: max-age=86400
  Expires: Thu, 22 Feb 2007 20:46:28 GMT
  X-Powered-By: PHP/4.4.2
  Content-Disposition: attachment; filename="rozenbaum_aleksandr=valys_boston.kar"
  Connection: close
  Content-Type: audio/midi
Length: unspecified [audio/midi]
 
    0K .......... ........                                     338.01 B/s
 
23:53:58 (338.01 B/s) - `index.html' saved [19117]

А нонешняя SVN версия уже сохраняет, как rozenbaum_aleksandr=valys_boston.kar

Цитата:
--00:19:31--  http://www.karaoke.ru/song/999/download/
Resolving www.karaoke.ru... 83.222.3.105
Connecting to www.karaoke.ru|83.222.3.105|:80... connected.
HTTP request sent, awaiting response...  
  HTTP/1.1 200 OK
  Date: Wed, 21 Feb 2007 21:13:04 GMT
  Server: Apache/1.3.34 (Unix) PHP/4.4.2
  Cache-Control: max-age=86400
  Expires: Thu, 22 Feb 2007 21:13:04 GMT
  X-Powered-By: PHP/4.4.2
  Content-Disposition: attachment; filename="rozenbaum_aleksandr=valys_boston.kar"
  Connection: close
  Content-Type: audio/midi
Length: unspecified [audio/midi]
Saving to: `rozenbaum_aleksandr=valys_boston.kar'
 
     0K .......... ........                                    1.26K=15s
 
00:19:53 (1.26 KB/s) - `rozenbaum_aleksandr=valys_boston.kar' saved [19117]

 Быстрей бы зарелизили...

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 23:05 21-02-2007 | Исправлено: igor_andreev, 23:21 21-02-2007
HORiSi

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть исходники к wdeamon
Найти бы толкового прогера...
USDownloader напрочь отказался инегрировать wget...  а юзабилити мы с ним наладили

Всего записей: 95 | Зарегистр. 24-05-2006 | Отправлено: 16:48 02-03-2007
Tulosha

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В имени пользователя [email protected] есть недопустимый символ @, не могу соединиться.  
wget --passive --glob=on -N -P i:\case\update\priv ftp://[email protected]:[email protected]/update/*.*
Пробовал писать так user%40user.ru - тоже не идет, пишет, что логин user0user.ru incorrect.  
Подскажите как правильно написать то?

Всего записей: 8 | Зарегистр. 13-02-2007 | Отправлено: 17:46 02-04-2007
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tulosha
Попробуй так:
wget [email protected] --ftp-password=PASS ...
а если и так взбрыкнет, то:
wget -e "[email protected]"  -e "ftp_password=PASS" ...

Всего записей: 1595 | Зарегистр. 08-12-2004 | Отправлено: 18:59 02-04-2007
Открыть новую тему     Написать ответ в эту тему

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