31 May 2009

wget - Linux download manager - spis ważniejszych opcji i tricków

man wget - najciekawsze opcje ;)

-q, --quiet
Tryb cichy. Wyłącza wyjście Wget.
-t liczba, --tries=liczba
Ustawia liczbę ponawiania prób na liczbę. Dla nieskończonego ponawiania: 0
-O plik, --output-document=plik
Dokumenty będą zapisywane do pojedynczego pliku (jeśli podano parę - zostaną sklejone). Jeśli plik istnieje, to zostanie nadpisany. Włączenie tej opcji automatycznie ustawia liczbę prób na 1.
-c, --continue
Kontynuuje pobieranie częściowo ściągniętego pliku. Opcja -c wpływa tylko na wznawianie pobrań zaczętych przed bieżącym wywołaniem Wget i tylko dla tych plików, których lokalne kopie nadal istnieją. Istnieje wiele ograniczeń w stosunku do tej opcji należy jej używać z rozwagą.
--limit-rate=wielkość
Ogranicza prędkości pobierania do wielkość bajtów na sekundę. Na przykład --limitrate=20k ograniczy prędkość ściągania do 20KB/s, a --limitrate=1m do 1MB/s.
--header=dodatkowy-nagłówek
Opcja ta pozwala na określenie dodatkowego nagłówka przesyłanego serwerom HTTP. Możliwe jest określenie więcej niż jednego dodatkowego nagłówka przez kilkakrotne podanie opcji --header.
wget --header='Accept-Charset: utf-8' --header='Accept-Language: pl' http://jakas.strona.pl/
Podanie pustego łańcucha jako nagłówka kasuje wszystkie uprzednio zdefiniowane przez użytkownika nagłówki.
--referer=url
Zamieszcza nagłówek ‘Referer: url’ w żądaniu HTTP. Przydatne do pobierania dokumentów z dodatkowym filtrowaniem po stronie serwera (obejście blokowania leechowania obrazków).
--user-agent=nazwa-agenta
Wget przedstawia się serwerowi HTTP jako agent o określonej nazwie - modyfikowany nagłówek "User-Agent"
-r, --recursive
Włącza pobieranie rekurencyjne - czyli wraz z podkatalogami, odnośnikami.
-l głębokość, --level=głębokość
Podaje maksymalny poziom głębokości rekurencji. Domyślnie jest to 5.
-p, --page-requisites
Ta opcja powoduje, że Wget ściągnie wszystkie pliki niezbędne do poprawnego wyświetlenia danej strony HTML. Obejmuje to takie rzeczy jak grafikę i powiązane arkusze stylów - polecam użycie wraz z opcją -k. Należy zauważyć, że Wget pobierze tylko pojedynczą stronę i jej elementy. Program nie będzie podążał za odnośnikami z tej strony do zewnętrznych dokumentów. Do ściągania pojedynczej strony i wszystkich towarzyszących jej elementów (nawet jeśli leżą one na odrębnych serwerach WWW) i upewnienia się, że całość lokalnie poprawnie się wyświetla, autor oprócz -p powinno korzystać się z kilku dodatkowych opcji:
wget -E -H -k -K -p http://jakis.serwer.pl/1.html
-A lista_akc --accept lista_akc
-R lista_odrz --reject lista_odrz
Jedna z opcji rekurencyjnego akceptowania/odrzucania. Podaje listę oddzielonych przecinkami przyrostków nazw plików (rozszerzeń plików) lub wzorców nazw, jakie mają być akceptowane lub odrzucane.
-D lista_domen, --domains=lista_domen
Ustala domeny, do których program może przechodzić. lista_domen jest listą separowaną przecinkami. Opcja ta nie włącza -H.
--exclude-domains lista_domen
Podaje domeny, do których program ma nie przechodzić.
-H, --span-hosts
Włącza przechodzenie pomiędzy hostami przy pobieraniu rekurencyjnym.
-np, --no-parent
Powoduje, że Wget przy pobieraniu rekurencyjnym nigdy nie wchodzi do katalogu nadrzędnego. Przydatna opcja, gdyż gwarantuje, że ściągane będą tylko pliki poniżej pewnego poziomu.
Część z poniższych porad znalazłem, a część sam wymyśliłem ;).

wget ignorowanie pliku robots.txt (ignore robots)

wget -erobots=off http://jakas.strona.pl/

Jak zalogować się do formularza korzystając z wgeta?

wget --post-data="login=user&password=pw" http://jakas.strona.pl/form.php

wget rapidshare hack

A sam też się pobawiłem i odkryłem małego hacka. Jeżeli masz dostęp do konta premium w serwisie rapidshare, a chciałbyś pobierać z tego serwisu pliki tylko w nocy, możesz skorzystać z wgeta i dodatkowego skryptu (skryptu nie należy stosować na publicznych serwerach shellowych):
#!/bin/bash

RS_LOGIN="login_tutaj"
RS_PASS="haslo_tutaj"

# if your version of wget doesn't want to work:
# 1. goto: http://ftp.gnu.org/gnu/wget/
# 2. get 1.10.2
# 3. compile (./configure && make)
# 4. cp src/wget to your file and 
# 5. change command to ./wget

for file in `cat src | grep -E '^http:\/\/rapidshare'` ; do
   echo $file
   wget -c --http-user=$RS_LOGIN --http-password=$RS_PASS $file
done
po uzupełnieniu zmiennych RS_LOGIN i RS_PASS i utworzeniu listy adresów w pliku src skrypt automatycznie zacznie ściągać dane.

Co oznaczają te opcje?

--http-user=użytkownik, --http-passwd=hasło
Określają nazwę użytkownika i hasło, które Wget prześle serwerowi HTTP. W zależności od rodzaju protokołu, Wget koduje je stosując albo uwierzytelnianie podstawowe ("basic", niechronione) albo w oparciu o skrót ("digest"). Żeby uchronić hasła przed podpatrzeniem, należy przechowywać je w pliku .wgetrc lub .netrc i, za pomocą “chmod", zapewnić tym plikom ochronę przed innymi użytkownikami.

Podsumowanie

Wget to naprawdę program o dużych możliwościach, a dzięki niewielkiemu rozmiarowi jest dostępny w niemal wszystkich możliwych dystrybucjach Linuxa. Początkujących użytkowników może odstraszyć jego konsolowy interfejs, ale naprawdę warto się z nim zapoznać - bo nie ma lepszego programu do pobierania plików z sieci (przynajmniej ja nie znam).

No comments:

Post a Comment