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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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 151 152

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

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
metrim

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

Цитата:
Полностью свою ком. строку приведи и версию wget'а.  

Строка вызова:

Цитата:
%wget% -i 1.txt -a 0187-3.log -p j:\test\

Версия:

Цитата:
GNU Wget 1.11.4, a non-interactive network retriever.

Качаю я файлы по списку в файле 1.txt

Всего записей: 107 | Зарегистр. 05-12-2002 | Отправлено: 18:27 05-04-2009
iglezz

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

Цитата:
Строка вызова:
 
Цитата:
%wget% -i 1.txt -a 0187-3.log -p j:\test\  

ну вот, опять p маленькая....
 
только что проверил из-под винды ХР:
Код:
C:\>wget  google.com -P C:\test\
--2009-04-06 13:37:33--  http://google.com/
Resolving google.com... 209.85.171.100
Connecting to google.com|209.85.171.100|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.google.com/ [following]
--2009-04-06 13:37:34--  http://www.google.com/
Resolving www.google.com... 74.125.39.147
Connecting to www.google.com|74.125.39.147|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://www.google.com.by/ [following]
--2009-04-06 13:37:34--  http://www.google.com.by/
Resolving www.google.com.by... 74.125.39.106
Connecting to www.google.com.by|74.125.39.106|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `C:/test/index.html'
 
    [  <=>                                  ] 4,904       7.62K/s   in 0.6s
 
2009-04-06 13:37:35 (7.62 KB/s) - `C:/test/index.html' saved [4904]

все нормально работает, согласно мануала ...
версия 1.11.4

Всего записей: 728 | Зарегистр. 18-02-2003 | Отправлено: 14:41 06-04-2009 | Исправлено: iglezz, 14:47 06-04-2009
FotIG

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
как wget через крон дать команду на скачивание такого адреса:
 
http://www.domain.com/index.phtml?d=0&h=0&m=0&l=
 
cron свою работу делает, но скачивается пустой файл (с небольшими элементами html-разметки) и обрезается, я так понял, до:
 
http://www.domain.com/index.phtml?d=0
 
в итоге получается, что без продолжения адреса после: ?d=0 ... данные не передаются.
 

Всего записей: 29 | Зарегистр. 08-04-2002 | Отправлено: 05:19 10-04-2009
igor_andreev

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

Всего записей: 1644 | Зарегистр. 08-12-2004 | Отправлено: 12:18 10-04-2009
FotIG

Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
igor_andreev
 
Огромное спасибо
Всё получилось — просто другие адреса работают нормально, а вот тут закавыка выходила

Всего записей: 29 | Зарегистр. 08-04-2002 | Отправлено: 18:30 10-04-2009
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, вопрос
Хочу каждый день загружать себе актуальную версию VRT от касперского ftp://devbuilds.kaspersky-labs.com/devbuilds/AVPTool/
 
 как в wget скачать только самый новый файл из этой директории на фтп? (вернее какие параметры указать wget-у)

Всего записей: 955 | Зарегистр. 31-10-2005 | Отправлено: 11:50 23-04-2009 | Исправлено: konungster, 11:50 23-04-2009
laden

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2konungster
Ну например вот так.
lynx -cfg="%windir%\lynx.cfg" -dump http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool | grep -e "http://downloads.kaspersky-labs.com/devbuilds/AVPTool/setup_.*exe$" -m 1|awk "{print $2}"|wget -N -P "%userprofile%\Desktop" -i -
Самое занятное, работает в линухе без шаманства особого. Только путь куда скачивать меняется.
А вот для винды, где собственно исполняется данная команда необходимо скачать соответсвенно порты lynx, awk, wget, grep
Зато потом с их помощью можно такого куралесить.

Всего записей: 1 | Зарегистр. 01-02-2006 | Отправлено: 19:05 23-04-2009 | Исправлено: laden, 19:27 23-04-2009
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, подскажите пожалуйста как скачать все файлы расширения .rar с директори http://site.com/1/
Спасибо!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 12:14 24-04-2009
konungster



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
laden
Работает,спасибо
если кому интересно взял порты с  
http://gnuwin32.sourceforge.net/packages/grep.htm
http://home.pacific.net.sg/~kennethkwok/lynx/
http://gnuwin32.sourceforge.net/packages/gawk.htm

Всего записей: 955 | Зарегистр. 31-10-2005 | Отправлено: 16:08 24-04-2009
sis_terr



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
мальчишки, подскажите как скачать странички с nnm.ru  c картинками .
в страничке index.html картинки вставляются примерно так
http://img15.nnm.ru/c/1/8/0/5/98d7b18d3e6254e4fd48bff0c54.jpg

Всего записей: 1288 | Зарегистр. 20-12-2007 | Отправлено: 16:31 24-04-2009
EdVS

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Можно ли wget скачивать torrent файлы. Если нет, то какой аналогичной программой (работающей в режиме командной строки) можно качать torrent файлы.

Всего записей: 2 | Зарегистр. 19-11-2005 | Отправлено: 16:48 24-04-2009
metrim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно как нибудь можно уговорить wget при том переключаясь каждые (ну например) 100 файлов на новый прокси (по списку проксей)?

Всего записей: 107 | Зарегистр. 05-12-2002 | Отправлено: 21:53 24-04-2009
Molt



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

Цитата:
Ну например вот так.  
lynx -cfg="%windir%\lynx.cfg" -dump http://devbuilds.kaspersky-labs.com/devbuilds/AVPTool | grep -e "http://downloads.kaspersky-labs.com/devbuilds/AVPTool/setup_.*exe$" -m 1|awk "{print $2}"|wget -N -P "%userprofile%\Desktop" -i -  

А почему не так?

Цитата:
wget -r -nd -A *.exe http://downloads5.kaspersky-labs.com/devbuilds/AVPTool/



----------
"Give me the place to stand, and I shall move the earth" — Archimedes

Всего записей: 1311 | Зарегистр. 07-11-2004 | Отправлено: 15:15 27-04-2009
konungster



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

Всего записей: 955 | Зарегистр. 31-10-2005 | Отправлено: 20:52 27-04-2009
at200859



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите решить такую задачу. Надо сделать зеркало части внешнего ftp сервера. Подключение к интернет через http прокси Squid. Версия Wget 1.11.4. В файле wgetrc указал адрес прокси, use_proxy=on, passive_ftp=on. Зеркалирую сервер командой:

Код:
wget.exe -v -a wget.log -c -m --no-cache -I Dir1,Dir2 -A "*.r*" ftp://ftp.server.ru

Теперь сами проблемы:
1. Новые файлы выкачиваются нормально, но старые файлы, которых уже нет на ftp сервере остаются и не удаляются. Какую команду использовать чтобы wget удалял их из локальной папки, т.е чтобы содержимое локальной папки всегда соответствовало содержимому ftp сервера?
2. При подключении к ftp серверу через тот же прокси с помощью какого-либо клиента (far, total commander) файлы отображаются с правильным временем создания. Однако при выкачивании их с помощью wget время устанавливается сдвинутым на величину часового пояса. Это может быть и не напрягало, если бы периодически не происходила полная повторная выкачка всех файлов. И старых тоже, которые были выкачены ранее. Видимо проблема в алгоритме получения времени файла через http прокси. Если файл будет чуть-чуть моложе, то wget считает его обновленным и выкачивает снова. Что можете предложить по решению этой проблемы?

Всего записей: 53 | Зарегистр. 18-02-2003 | Отправлено: 11:27 30-04-2009 | Исправлено: at200859, 11:31 30-04-2009
Dimapplk

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите с авторизацией на сайтах под управлением uCoz'a. Нужно скачать страницу, доступную только после авторизации. Перепробовал все варианты - всегда скачивается  страница без авторизации. Скачать нужно страницу типа  этой, но именно с авторизацией на сайте.

Всего записей: 95 | Зарегистр. 20-05-2007 | Отправлено: 23:12 30-04-2009
metrim

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
осмотрел в логах скачки по списку, оказалось что многие файлы не скачались  с ошибкой 503 (ошибка сервера).
Можно ли как нибудь сделать, что бы эти файлы таки скачивались? несколько попыток или типа того.
При том надо что бы докачивались именно и только файлы с 500ой ошибкой

Всего записей: 107 | Зарегистр. 05-12-2002 | Отправлено: 00:11 13-05-2009
serzhinio

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как при помощи wget качать отсюда http://ru.savefrom.net/
 
(типа есть ссылки deposit - передавать из сайта напрямую в wget)  
 
Есть ли возможность такая??

Всего записей: 2 | Зарегистр. 03-10-2007 | Отправлено: 14:12 22-05-2009
xp3n

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите.
есть такой код:
@echo off
cd ..
cd test
..\Data\wget -c http://www.sophos.com/downloads/ide/441_ides.zip
cd ..
cd enter
7z.exe x -o"..\Scans\Sophos" -y "..\Downloads\441_ides.zip"
del "..\Downloads\441_ides.zip"
однако не сервере постоянно меняют начальное название файла. сегодня 441_ через неделю 447_.  
попробовал написать
..\Data\wget -c http://www.sophos.com/downloads/ide/*_ides.zip, но
wget все время выдает 404 -not found.
как правильно составить запрос?

Всего записей: 18 | Зарегистр. 01-11-2004 | Отправлено: 20:08 31-05-2009
Molt



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
xp3n
можно было бы так:
 
wget -r -nd -A *.zip http://www.sophos.com/downloads/ide/
 
но у тебя будут скачиваться 4 архива (439/440/441/442 в данном случае)
А дальше уже батником работать.

----------
"Give me the place to stand, and I shall move the earth" — Archimedes

Всего записей: 1311 | Зарегистр. 07-11-2004 | Отправлено: 20:35 31-05-2009 | Исправлено: Molt, 20:35 31-05-2009
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 151 152

Компьютерный форум 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