Jak ustawić adres proxy HTTP dla wget pod Windows?

11

Jeśli uruchomiono bez parametrów, moje wgetwydruki:

D:\>wget
SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc
syswgetrc = c:/progra~1/wget/etc/wgetrc
D:\Apps\Util\wget: missing URL
Usage: D:\Apps\Util\wget [OPTION]... [URL]...

Try `D:\Apps\Util\wget --help' for more options.

Prawdopodobnie oznacza to, że szuka pliku wgetrcw c:/progra~1/wget/etc/wgetrc. Niestety ta lokalizacja jest niedostępna dla programów innych niż root. Myślałam mogę zmodyfikować SYSTEM_WGETRClub syswgetrczmiennych, ale to wygląda mający żadnego wpływu

D:\>echo %SYSTEM_WGETRC%
d:\apps\util\wgetrc

D:\>echo %syswgetrc%
D:\APPS\Util\wgetrc
Suzan Cioc
źródło
Ojej, to jest tak cholernie dziwne. Dlaczego dostajesz ukośniki c: /? Powinien to być C: \
barlop
również zabawne, że twój wget mówi ci o wgetrc, mój nie. Może mamy inne ustawienia. Ale jaką masz wersję wget?
barlop

Odpowiedzi:

10

wget --helpniewiele ci mówi. Aby uzyskać więcej informacji, możesz sprawdzić online instrukcję wget lub man wget (są to różne rzeczy, często warto je sprawdzić)

Krótko mówiąc, oto przykład

C:\sdf>wget -e http_proxy=127.0.0.1:8118 www.google.com

i kolejny

C:\sdf>set http_proxy=127.0.0.1:8118
C:\sdf>wget www.google.com

Podręcznik wymienia wgetrcpolecenia . Widzisz tam niektóre rzeczy na temat serwerów proxy http.

6.3 Polecenia Wgetrc

  • http_proxy = string
    Użyj ciągu jako proxy HTTP, zamiast określonego w środowisku.
  • https_proxy = string
    Użyj ciągu jako serwera proxy https, zamiast określonego w środowisku.

8.1 Pełnomocnictwa

Wget obsługuje proxy dla pobierania http i ftp. Standardowym sposobem określenia lokalizacji proxy, którą rozpozna Wget, jest użycie następujących zmiennych środowiskowych:

  • http_proxy
  • https_proxy
    Jeśli ustawione, zmienne http_proxy i https_proxy powinny zawierać adresy URL serwerów proxy dla połączeń odpowiednio HTTP i https.

dodany

Odnośnie strony manuala wget i „instrukcji wget”.

Strony podręcznika w wierszu poleceń są aktualne, ale podręcznik (inny byt niż strona podręcznika) nie zawsze jest aktualną wersją wget. W chwili pisania (wrzesień 2015) tak jest. http://www.gnu.org/software/wget/manual/wget.html Możesz zobaczyć wersję u góry i sprawdzić, czy jest najnowsza http://ftp.gnu.org/gnu/wget/ pokazuje daty też. (Widzisz na archive.org, że np. W listopadzie 2013 r. Instrukcja GNU była bardzo nieaktualna. W listopadzie 2013 r., Nawet w marcu 2014 r., Nadal wyświetlały wget 1.13.4 z 2011 r.)

Dla strony podręcznika, jeśli sprawdzasz z linii poleceń, to musi być to wersja, której używasz, abyś mógł być w porządku, upewniając się, że twoje polecenie jest aktualne / aktualizuje je. Możesz sprawdzić, czy / dowolne używane źródło online wyświetla najnowszą stronę podręcznika man. Ten wydaje się w porządku https://www.kernel.org/doc/man-pages/ linki do http://man7.org/linux/man-pages/man1/wget.1.html Możesz również sprawdzić tam wersję przeciwko linkowi ftp, aby upewnić się, że jest to najnowsza wersja.

barlop
źródło
W grudniu 2013 roku było tak, że człowiek wget miał nowszą wersję niż strona internetowa. np. - content-on-error znajdował się na tej stronie man wget 2013, ale nie w instrukcji online wget, która zawiera listę opcji. Strona internetowa nie zawsze jest aktualna. Chociaż, jak wspomniano w mojej odpowiedzi, od września 2015 r. Strona jest aktualna.
barlop
1

Myślę, że chcesz tylko ustawić HTTP_PROXYzmienną środowiskową.

Od: http://www.gnu.org/software/wget/manual/html_node/Proxies.html :

Wget obsługuje proxy dla pobierania http i ftp. Standardowym sposobem określenia lokalizacji proxy, którą rozpozna Wget, jest użycie następujących zmiennych środowiskowych:

http_proxy
https_proxy

Jeśli ustawione, zmienne http_proxy i https_proxy powinny zawierać adresy URL serwerów proxy dla połączeń odpowiednio HTTP i https.

ckhan
źródło
1

Odpowiedź barlopa jest ogólnie dobra, ale kilka komentarzy:

w wierszu polecenia dos / windows lub pliku wsadowym określasz

set http[s]_proxy=http[s]://proxyserver:port/

wtedy wget działa dobrze.

zwykle bierze dane uwierzytelniające do pojedynczego logowania w systemie Windows, jeśli użytkownik znajduje się w sieci firmowej z uwierzytelnianiem NTLM względem serwera proxy (nie trzeba się martwić o domenę - odwrotny ukośnik - użytkownik)

steinweb
źródło