IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Обсуждение программ (http://www.imho.ws/forumdisplay.php?f=3)
-   -   [FreeWare] Wget - (GNU Wget) свободная неинтерактивная консольная файлокачалка (http://www.imho.ws/showthread.php?t=61066)

SlavUser 07.06.2004 02:02

Wget - (GNU Wget) свободная неинтерактивная консольная файлокачалка
 
Т.к такой темы не существует, предлагаю проблемы и вопросы связаные с программой WGet обсуждать здесь.

И первый вопрос: каким параметром задается каталог куда скачивается файл? Вроде все просмотрел, а толком ничего не нашел.

Anarchist 07.06.2004 09:37

SlavUser если не возражаешь, допишу пару строчек.

Скачать программу и некоторые к ней добавки, GUI например ...
Можно здесь:

http://www.imho.ws/showthread.php?t=44390

В шапке там есть несколько хороших ссылок на описание проги.

denver 07.06.2004 09:57

SlavUser
wget -i http://ya.ru/logo.gif -P c:\downloads\

3bsd 07.06.2004 10:37

SlavUser
 
пример:
wget -P %HOMEDRIVE%\Downloads\
а если без GUI создай бат файл в папке с прогамой и туда пиши например:
-------------------------------------------------------
@echo off
set DOWNDIR=%HOMEDRIVE%\Downloads\%DATE%\
wget -P %DOWNDIR% --dot-style=binary -S -i links.txt
rem а ето уже не обезательно
if errorlevel 1 goto END
:OPENDIR
start %DOWNDIR%
pause
:END
Exit
-------------------------------------------------------
в файле links.txt добавь ссылки для скачивания и запусти бат файл

Forson 07.06.2004 15:32

а можно ли для wget скачать GUI ?

Ghost 07.06.2004 15:43

Forson
Цитата:

Сообщение от Anarchist
Скачать программу и некоторые к ней добавки, GUI например ...
Можно здесь:

http://www.imho.ws/showthread.php?t=44390

All
wget - штука замечательная, из всех downloader'ов самая лучшая (имхо, во всяком случае я их перепробовал что-то около полутора десятков).

Я делаю очень просто. Засовываю линки в файл, а потом запускаю специальный батник:
Код:

@echo off
rem =========================================================
if "%1"==""        goto cont
if not exist %1        goto end
rem =========================================================
set hh=%TIME:~0,2%
set mm=%TIME:~3,2%
set ss=%TIME:~6,2%
set outdir="%temp%\%date% [%hh%.%mm%.%ss%]"
if not exist %outdir% md %outdir%        > nul
copy /y %1 %outdir%\wget.url                > nul
rem =========================================================
start "WGet" wget -nc -o%outdir%\wget.log -i%outdir%\wget.url -P%outdir%
goto end
rem =========================================================
:cont
if not exist wget.url goto end
start "WGet" wget -c -owget.log -iwget.url
:end

Если батник запускается с параметром, то этот параметр используется как имя файла с линками, если без параметра, то wget запускается для докачки, а линки берет из wget.url текущей директории.

З.Ы. Всякие дополнительные параметры (фоновый запуск, формат лога и т.п.) берутся из файла wgetrc. Надо только описать переменную среды WGETRC и указать в ней полное имя этого файла.

Ghost 10.06.2004 19:33

Есть такой вопрос: положим я запустил несколько потоков wget и один из них мне нужно остановить; это можно сделать в диспетчере задач, но для этого нужно знать PID. Так вот, как узнать этот PID?

В линухе это просто, пишем
wget -b bla-bla-bla > wget.pid
и в файл wget.pid записывается строка
Continue in background with PID = ###
В винде wget подобной информации не выдает. :idontnow: Или я ее просто не сумел найти. :(

З.Ы. Возможно, это можно решить, установив гуй (GUI), но я просто не хочу ставить его - считаю это лишним. Хотя, возможно, если никто не подскажет как решить мою проблему, придется ставить...

З.З.Ы. wget у меня версии 1.9.1

albo 11.06.2004 04:07

wget.exe -b http://lalala/la
Continuing in background, pid 2372.
Output will be written to `wget-log'.

Ghost 11.06.2004 09:15

albo
Намекни, что за версия. Из всего, что ты написал, у меня wget выдает только первые три слова первой строки. :(

Premium 11.06.2004 13:04

Ghost
А ты nnCron не пользуешься? Он умеет отлавливать PID. Сделать задачу вроде:

#( write_wget_PID
WatchProc: "wget.exe"
Action:
FILE-APPEND: "D:\wget.pid" "%hh%:%mm%:%ss% start wget PID = %WATCH-PROC-ID%%crlf%"
)#

и nnCron будет записывать точное время старта и PID каждого процесса wget.
А wget в свой лог тоже пишет точное время старта.

SlavUser 11.06.2004 15:10

Происходит что-то странное: wget качает медленнее чем FlashGet. В чем может быть причина?
Спасибо.

Premium 11.06.2004 17:19

Цитата:

SlavUser:
wget качает медленнее чем FlashGet. В чем может быть причина?
C параметрами в wgetrc играться надо. Брать каждую строчку и закомментировать по очереди, после запускать wget и смотреть лог. Иногда долго играться приходиться, пока причину не найдешь. :( Может помочь запрет ходить через прокси (use_proxy = off), прямое соединение, а кому то наоборот надо прокси прописать, от прова зависит.

А ты их (wget и FlashGet) не одновременно запускал случаем? А то FlashGet в состоянии траффик у кого угодно отобрать :)

SlavUser 11.06.2004 18:40

Нет. Я их по очереди запускал.
А use_proxy = off не помогло.

-OFFTOP-
Как включить HTML код? А то я никак не могу цитату в ответ вставить.

Спасибо.

nibl 11.06.2004 20:27

Цитата:

Происходит что-то странное: wget качает медленнее чем FlashGet. В чем может быть причина?
FlashGet использует при закачке до 10 потоков (jobs), а wget - 1.
Для медленных серверов это важно.
Настрой FlashGet на 1 поток (в свойствах закачки) и сравни.

Crime 13.06.2004 22:42

решил тут прикрутить Вгет к Опере, может кому надо:
вставлять в
[Link Popup Menu]
Item, "Download with Wget" = Copy link & Execute program, "D:\WGET\wget.exe","%C -P D:\Downloads\ -c"
+можно добавить своих кучу параметров.

+небольшое дополнение "Скачать выделенный линк", добавить в
[Hotclick Popup Menu]
Item, "Скачать выделленный линк" = Copy & Execute program, "D:\WGET\wget.exe","%C -P D:\Download\ -c"
или
Item, "Скачать выделленный линк вариант 2" = Execute program, "D:\WGET\wget.exe","%t -P D:\Download\ -c"

принципиальной разницы нету.

Crime 14.06.2004 17:04

решил продолжить тему только уже с сохранение мстраницы
добавляем в меню.ini

[Document Popup Menu]
Submenu, "save page with Wget", WGET menu

и в самый конец файла

[WGET Menu]
Item, "сохранить страницу при помощи Wget" = Execute program, "D:\WGET\wget.exe","-m -np %u -P D:\Download\Web\"
Item, "сохранить страницу при помощи Wget на 1 уровень" = Execute program, "D:\WGET\wget.exe","-r -l1 %u -P D:\Download\Web\"
Item, "возобновить сохранение" = Execute program, "D:\WGET\wget.exe","-nc -r %u -P D:\Download\Web\"

если кто знает интересные ключи или предложения, выкладываем.

SlavUser 14.06.2004 17:27

Так а как сделать так, что бы Wget качал в х потоков?

Crime 15.06.2004 10:21

Цитата:

Сообщение от SlavUser
Так а как сделать так, что бы Wget качал в х потоков?

на сколько я знаю Wget не поддерживает несколько потоков :(
сам искал, в командах упоминаний нет. а может полхо искал.

Ghost 15.06.2004 10:34

Crime
Искал, хорошо. WGet, во всяком случае - виндовый, действительно может качать файл только в один поток: один файл - один поток, т.е. разбивать файлы на части (как это делают FlashGet, GetRight и иже с ними) он не может. Если же имелось в виду: x файлов - x потоков, то просто нужно запускать сразу несколько процессов WGet'а и всё.

n0n 16.06.2004 11:51

Цитата:

Поддерживается работа через прокси и из-за фильтрующего брандмауэра.
Это цитата из неофициального русского мануала (_http://vap.org.ru/wget/05-00.shtml) меня интересует вторая возможность - работа из-зи фильтрующего брандмауэра. У нас на работе стоит прокси (кажется ISA Server) и не дает качать ничего с расширениями *.exe, *.mp3, *.zip, *.rar и т.д. Может ли Wget творить чудеса и если да то как?

Ghost 16.06.2004 12:02

Попробуй качать, скажем, не *.mp3, а *.m&p&3, т.е. ручками менять имя файла - с большинства HTTP-серверов таким образом можно скачать файлы, наплевав на запрет прокси. Я так уже давно музыку тяну. Насчет того, чтобы WGet обходил запрет прокси, т.е. фактически подключался к инету не через проксю, а напрямую, то в твоем случае это скорее всего невозможно, так же как и у меня, во всяком случае, у себя я такого не обнаружил. :(

Premium 11.09.2004 11:12

А никто не сталкивался со скачиванием файлов, в названии которых есть квадратные скобки? Например
_ftp://195.135.232.80/Books/design/Learn.HTML4.In.a.Weekend.[by.KiN_www.netz.ru]_11,02.MB.rar
_ftp://195.135.232.80/Books/os/The.XP.Files.Hidden.Tools.[by.KiN_www.netz.ru]_3,62.MB.rar

У меня почему то wget споткнулся на них, все другие файлы с этого фтп-шника тянет нормально. Я пробовал заменить квадратные скобки на %5B и %5D (в батниках %%5D), все равно результат один - в логе пишет: No matches on pattern `Learn.HTML4.In.a.Weekend.[by.KiN_www.netz.ru]_11,02.MB.rar'.

albo 11.09.2004 12:13

Premium
_ftp://195.135.232.80/Books/design/Learn.HTML4.In.a.Weekend.?by.KiN_www.netz.ru?_11,02.MB.rar
А так? :)

Premium 11.09.2004 14:37

albo Спасибо большое :yees: , сам бы не догадался про вопросительный знак, привык при случае спорные места менять на проценты-hex, вроде вместо пробела - %20

iaroslavk 13.01.2005 06:58

А вот подскажите, можно ли в WGet задать ограничение на размер скачиваемых файлов? Ну скажем чтоб когда сайт тянешь, он файлы более мегабайта не качал?

iaroslavk 17.01.2005 21:19

Ну что же все молчат??? Нельзя? Или не знает никто?

Ghost 18.01.2005 07:26

iaroslavk
Низя. Набери wget --help и увидишь, что там нет такой опции. :(

iaroslavk 18.01.2005 19:02

Очень жаль. Если б было можно - wget был бы действительно вне конкуренции...

Oleg 17.02.2005 14:27

Цитата:

Сообщение от n0n
Это цитата из неофициального русского мануала (_http://vap.org.ru/wget/05-00.shtml) меня интересует вторая возможность - работа из-зи фильтрующего брандмауэра. У нас на работе стоит прокси (кажется ISA Server) и не дает качать ничего с расширениями *.exe, *.mp3, *.zip, *.rar и т.д.

А можно ли настроить работу wget через ISA сервер, если там используется NTLM авторизация?

Ghost 09.03.2005 15:42

Вобщем так: нужно научить wget выковыривать имена файлов из Content-header'а. А именно, пример... Есть такой сайт - karaoke.ru и там куча песен. Я хочу их скопом стянуть. Для чего делаю файлик со ссылками и заряжаю его в wget. Все бы ничего, но этот уродец по ссылке httр://www.karaoke.ru/song/1/download/ вытягивает файл index.html, хотя заголовок HTTP-ответа сервера содержит настоящее имя файла, т.е. a_studio=belaja_reka.kar. Вот что он (уродец) пишет в логе:
Код:

--15:52:59--  http://www.karaoke.ru/song/1/download/
          => `index.html'
Connecting to *.*.*.*:*... connected.
Proxy request sent, awaiting response...
 1 HTTP/1.0 200 OK
 2 Date: Wed, 09 Mar 2005 13:00:04 GMT
 3 Server: Apache/1.3.28 (Win32) PHP/4.3.9
 4 Cache-Control: max-age=86400
 5 Expires: Thu, 10 Mar 2005 13:00:04 GMT
 6 X-Powered-By: PHP/4.3.9
 7 Content-Disposition: attachment; filename="a_studio=belaja_reka.kar"
 8 Content-Type: application/midi
 9 Connection: close

    0K ....                                                  1.48 KB/s

15:53:29 (1.48 KB/s) - `index.html' saved [40062]


FINISHED --15:53:29--
Downloaded: 40,062 bytes in 1 files
Converted 0 files in 0.00 seconds.

Я, конечно, могу поступить согласно своей подписи, а именно: тупо стянуть кучу index.html'ей в разные папки и написать скрипт, который проанализирует лог и переименует енти html'ки должным образом. Но ведь, наверное, можно как-то сделать это и wget'ом?

Premium 10.03.2005 08:07

Цитата:

Ghost:
Но ведь, наверное, можно как-то сделать это и wget'ом?
Кажется нет :(. В архивы рассылки sunsite.dk сейчас посмотрел - вопрос про Content-Disposition был один раз год назад http://www.mail-archive.com/wget@sun.../msg06268.html , но почему то остался без ответа, хотя там в рассылке отвечают обычно Hrvoje Niksic и иже с ним разработчики.

Oleg 10.03.2005 10:07

Иногда помогает сменить строку user-agent wget на другую, чтобы "обмануть" веб-сервер. Я так делал не раз, и добивался результата.

Quasar 24.09.2005 15:15

Цитата:

Сообщение от Oleg+
А можно ли настроить работу wget через ISA сервер, если там используется NTLM авторизация?

Да, можно.

Попробуй написать что-то вроде
Код:

wget.exe http://site.ru/ -Yon --proxy-user=USER --proxy-passwd=PASSWORD
, где USER и PASSWORD - твои учетные логин и пароль в системе Windows.

Напиши тут о результатах. Это должно сработать.

По такому принципу я забираю базы KAV5 с FTP серверов (сам KAV5 почему-то ни в какую не хочет это делать, хотя все опции там вроде есть).

Oleg 26.09.2005 12:00

Цитата:

MNT:
Попробуй написать что-то вроде
Код:

wget.exe http://site.ru/ -Yon --proxy-user=USER --proxy-passwd=PASSWORD

, где USER и PASSWORD - твои учетные логин и пароль в системе Windows.
Да, это работает.

А насчет KAV5 - сама Лаборатория Касперского не рекомендует использовать wget для закачки обновлений :) т.к. он не проверяет контрольные суммы.

Smitis 26.09.2005 15:22

Oleg+
Цитата:

А насчет KAV5 - сама Лаборатория Касперского не рекомендует использовать wget для закачки обновлений :) т.к. он не проверяет контрольные суммы.
Перестраховщики! :biggrin: Всё нормально качается.

Oleg 26.09.2005 17:29

С опцией wget --mirror может возникнуть проблема, если длина файла на ftp сервере равна длине файла на диске...

ali78 30.08.2006 15:33

Можно ли WGET'ом выкачать закрытую область сайта при наличии логина и пароля?

Alex8 30.08.2006 18:06

Цитата:

Сообщение от ali78
Можно ли WGET'ом выкачать закрытую область сайта при наличии логина и пароля?

Цитата (с переводом) из "wget --help":

HTTP options:
--http-user=USER использовать имя юзера USER.
--http-passwd=PASS использовать пароль PASS.

ali78 31.08.2006 09:02

Alex8, спасибо, я это читал и уже даже пробовал, но там немного не такая аутентификация. Там java смотрит в БД и выдаёт то, что доступно данному пользователю.
пробовал так:
wget -mr http://www.mysite.ru?login=blabla%26password=blabla
тоже ничего не качает кроме странички логина, хотя в IE логинится и показывает закрытую область.

Alex8 31.08.2006 09:48

а логин через куки?
попробуй, может:
--load-cookies=FILE load cookies from FILE before session.
--save-cookies=FILE save cookies to FILE after session.

типа, сохранить сначала в файл, посмотреть, что там остаётся.
если надо - подправить, или скопировать куку из IE.
и подгрузить для полного сеанса скачивания.

а, вот ещё есть
--referer=URL include `Referer: URL' header in HTTP request.
может, этот сайт проверяет реферера?

или
-U, --user-agent=AGENT identify as AGENT instead of Wget/VERSION.
может, ожидается определённый браузер?

и еще вариант для дебага:
-s, --save-headers save the HTTP headers to file.


Часовой пояс GMT +4, время: 17:44.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.