A GNU Wget (avagy csak Wget, korábban Geturl) egy számítógépes program, amely a webszerverekről adatokat nyer ki, és a GNU Project része. A nevének eredete a World Wide Web és a get. A HTTP, a HTTPS és az FTP protokollokon keresztül történő letöltést támogat.

wget

FejlesztőGiuseppe Scrivano, Hrvoje Nikšić
Első kiadás1996. január
Legfrissebb stabil kiadás1.25.0 (stabil verzió, 2024. november 10.)[1]
Programozási nyelvC
Operációs rendszerplatformfüggetlen
Állapotaktív
KategóriaFTP-kliens / HTTP-kliens
LicencGNU General Public License 3-as vagy későbbi verzió[2]
A wget weboldala

Szolgáltatásai között megtalálható a rekurzív letöltés, a linkek átalakítása a helyi HTML offline megtekintése érdekében, a proxyk támogatása és egyebek. 1996-ban jelent meg, a web használatának széles körű elterjedésével egyidőben, amely a Unix felhasználók körében való nagyfokú használatot eredményezte, továbbá azt, hogy a legtöbb GNU/Linux alapú disztribúcióval együtt adják. Hordozható és átalakítható C nyelven íródott, ezáltal a wget bármely Unix-jellegű rendszeren használható, továbbá több környezetbe is portolták, így a DOS-ba,[3] Microsoft Windowsba, a Mac OS X-be, az OpenVMS-be, a MorphOS-ba és az AmigaOS-ba is.

Grafikus programok alapjául is szolgál, így például a GNOME felületre írt GWget-nek.

Története

szerkesztés

A Wget egy korábbi, Geturl nevű, azonos szerző által írt program leszármazottja, amelynek fejlesztése 1995 végén kezdődött el. A név akkor változott Wget-re, amikor egy korábbi Amiga programról tudomást szerzett, amit James Burton írt AREXX-ben és szintén GetURL volt a neve.

A Wget az 1990-es évek közepén a letöltőszoftverekben nagy űrt töltött be. Semelyik program sem volt képes HTTP és FTP protokollban megbízhatóan fájlokat letölteni. A meglevő programok kizárólagosan FTP-t támogattak (így például az NcFTP és a dl[halott link]) vagy pedig Perl nyelven íródtak, amely abban az időben nem számított elterjedtnek. Amíg a Wgetet már meglevő programok meglevő szolgáltatásai inspirálták, addig célként tűzte ki a HTTP és az FTP támogatását is és azt, hogy a minden Unix rendszeren megtalálható fejlesztőeszközökkel is futtatható legyen.

Ebben az időben sok Unix-felhasználó az igencsak lassú egyetemi avagy betárcsázós kapcsolatokkal küzdött, amely megnövelte annak igényét, hogy legyen egy program, amely képes a gyakori internet-megszakadásokat emberi beavatkozás nélkül kezelni.

Szolgáltatások

szerkesztés

Robusztusság

szerkesztés

A Wgetet a lassú vagy instabil internetkapcsolatok esetén is robusztussá tervezték. Amennyiben egy letöltés nem fejeződik be a számítógép hálózati kapcsolatának problémája miatt, a Wget automatikusan megpróbálja a letöltést ott folytatni, ahol abbahagyta és ezt a teljes fájl kinyeréséig folytatni. Egyike volt az első klienseknek, amelyek támogatták az akkortájt újdonságnak számító Range HTTP fejlécet.

Rekurzív letöltés

szerkesztés

A Wget tartalmaz olyan opciót, hogy a HTML weboldalakban linkelt oldalakat automatikusan letöltse, sorban, egészen addig, ameddig az összes linkelt fájl le nem töltődött avagy a felhasználó által megszabott szint limitjét el nem érte. A letöltött lapok a külső szerverrel megegyező könyvtárstruktúrában kerülnek lementése. Ez a rekurzív letöltés a fájlok, weboldalak HTTP-n keresztüli részleges vagy teljes letöltését és tükrözését tudja biztosítani. A HTML fájlokban található linkek esetében a Wget képes arra, hogy az offline megtekintésre kompatibilissé tegye őket. A weboldalak ezen automatikus tükrözése során a Wget támogatja a Robots Exclusion Standardot. (egészen addig, ameddig -e robots=off nincs használva).

A rekurzív letöltés emellett az FTP-nél szintúgy működik, ahol a Wget a LIST paranccsal keres további letöltendő fájlokat és könyvtárakat, a folyamatot a felső URL alatt található könyvtárakban.

Amikor a HTTP-n vagy az FTP-n keresztül fájlokat tölt le, a Wget-nek megadható, hogy figyelje az időbélyegeket mind a helyi, mind a távoli gépen és csak azon fájlokat töltse le, amelyek újabbak a kapcsolódó helyi fájloknál. Ez elősegíti a HTTP és az FTP oldalak egyszerű tükrözését, ám kevéssé hatékonynak és hibára hajlamosnak tartják a kifejezetten a nulláról való tükrözésre készített programokkal szemben, így például az rsync-cel szemben. Ezekkel eltérően azonban a Wget-hez nem kell speciális szerveroldali szoftver a feladat végrehajtásához.

Felhasználói beavatkozás igénylésének hiánya

szerkesztés

A Wget abból a szempontból nem interaktív, hogy amint elindította a felhasználó, nincs szükség további beavatkozásra és a későbbi megvizsgálás számára igény esetén elment egy naplófájlt. Emellett a felhasználó elindíthatja a Wgetet, kijelentkezhet és a programot felügyelet nélkül hagyhatja. A Wget-tel ellentétben a legtöbb grafikus vagy szöveges webböngésző a felhasználótól megkívánja, hogy bejelentkezve maradjon és szükség esetén a letöltéseket manuálisan újraindítsa, amely nagy mennyiségű adat letöltése esetén jelentős akadály.

Hordozhatóság

szerkesztés

Átültethető stílusban íródott C nyelvű program, külső, harmadik fél által írott könyvtáraktól alig függ, így a wget alig igényel többet egy C nyelvű fordítóprogramnál (pl. gcc) és egy BSD interfészű TCP/IP hálózatnál. Unix programként lett tervezve, az Unix shellből való meghívásra; a programot portolták több környezetre és rendszerre, így a Microsoft Windowsra a Cygwin segítségével, és Mac OS X-re. A GnuWin csomagok egyikeként natív Microsoft Windows programként is elérhető.

Egyéb szolgáltatások

szerkesztés
  • A Wget támogatja a proxykon keresztül történő letöltést, amelyeket gyakran alkalmaznak cégen belül a tűzfalak biztosítására és a gyakran látogatott tartalmak cache-elésére és ezáltal gyorsabb elérésére.
  • Ahol lehetséges, használja a fennálló HTTP kapcsolatokat.
  • A megfelelő interfaceket tartalmazó rendszereken támogatja az IPv6-ot.
  • A SSL/TLS-t támogatja a titkosított letöltésekhez az OpenSSL könyvtárral.
  • A 2 GiB-nél nagyobb fájlokat a megfelelő interface-szel rendelkező 32 bites operációs rendszereken támogatja.
  • A letöltési sebesség limitálható, amely megakadályozza a teljes sávszélesség felhasználását.

A Wget használata

szerkesztés

Alapvető használat

szerkesztés

A GNU Wget tipikus használata a parancssorból való meghívása és egy vagy több URL letöltése

# Az example.com kezdőlapjának letöltése
# egy "index.html" nevű fájlba.
wget http://www.example.com/
# A Wget forrásának letöltése a GNU FTP-oldalról.
wget ftp://ftp.gnu.org/pub/gnu/wget/wget-latest.tar.gz

Egy másik használat lehet a linkek automatikus letöltése egy könyvtárhierarchiába.

# A *.gif fájlok letöltése egy oldalról
# (a "wget http://www.server.com/dir/*.gif" csak FTP-nél működik)
wget -e robots=off -r -l1 --no-parent -A.gif ftp://www.example.com/dir/
# Az example.com kezdőlapjának letöltése
# a szükséges képekkel és stíluslapokkal együtt és az URL-ek
# belső konvertálása, hogy a helyi tartalomra mutassanak.
wget -p -k http://www.example.com/
# Az example.com teljes tartalmának letöltése
wget -r -l 0 http://www.example.com/

Haladó példák

szerkesztés

Az összes link rekurzív követése egy oldalról, a fájlokban a helyi használatra történő linkekké való átírás. Véletlenszerű várakozás legfeljebb 5 másodperc erejéig és az eredmények "myLog.log" fájlba való kimentése. Hiba esetén 14 másodpercenként a letöltés újra megkísérlése, legfeljebb hétszer. (A parancsnak egy sorban kell lennie.)

wget -t 7 -w 5 --waitretry=14 --random-wait -m -k -K -e robots=off
        http://www.oreilly.com/catalog/upt3/errata/ -o ./myLog.log

A "my_movies.txt" helyi fájlban listázott specifikus linkek letöltése. A fájlok között 0 és 33 másodpercenként között történő random várakozás és 512 kilobájt/másodperces sávszélességhasználati limit. Hiba esetén újra próbálkozás, legalább 22, legfeljebb 48 másodperc különbséggel. A nyomonkövető user agent és HTTP referer adatok el nem küldése, a robotok számára kiadott limitek figyelembe nem véele. Minden letöltött fájl mentése a helyi movies könyvtárba és az eredmények naplózása a "my_movies.log" fájlba. Jól használható adott fájlok letöltésére a hálózat leterhelése nélkül:-

Egy üres referer és user-agent egy valódi használata javasolt, amely nem okoz “ERROR: 403 Forbidden” üzenetet egy korlátozó oldalról. Lehetséges továbbá egy .wgetrc fájl létrehozása, amely némely alapértelmezett értéket tartalmaz.[4]

wget -t 22 --waitretry=48 --wait=33 --random-wait --referer="" --user-agent=""
     --limit-rate=512k -e robots=off -o ./my_movies.log -P./movies -i ./my_movies.txt

A sütikkel való védelem esetén:-

# A referer és cookie által védett tartalom letöltése
# 1. az alap URL kinyerése és tartalmainak fájlba mentése
# 2. a védett tartalom tárolt sütikkel való kinyerése
wget --cookies=on --keep-session-cookies --save-cookies=cookie.txt http://first_page
wget --referer=http://first_page --cookies=on --load-cookies=cookie.txt
     --keep-session-cookies --save-cookies=cookie.txt http://second_page

Tükrözés és a CGI, ASP vagy PHP és egyéb fájlok helyi böngészésre való konvertálása HTML-be:-

# Egy oldal helyi böngészésre való statikus mentése.
# Ez azt jelenti, hogy minden link át lesz írva a helyi változatra mutató linkké.
# Megjegyzendő, hogy a --html-extension minden CGI, ASP vagy PHP által fenerált fájlt HTML-be ment.
wget --mirror -w 2 -p --html-extension --convert-links -P <dir> http://www.yourdomain.com

Kapcsolódó programok

szerkesztés

A GWget egy ingyenes grafikus frontend a Wget számára. A fejlesztője David Sedeño Fernández és a program a GNOME projekt része. A GWget a Wget összes főbb funkcióját támogatja és emellett a párhuzamos letöltést is.

Kapcsolódó szócikkek

szerkesztés

Külső hivatkozások

szerkesztés