wget

A Wikipédiából, a szabad enciklopédiából
Ugrás a navigációhoz Ugrás a kereséshez
wget
Official gnu.svg
Screenshot of Wget in Linux.
Screenshot of Wget in Linux.

Fejlesztő Giuseppe Scrivano, Hrvoje Nikšić
Első kiadás 1996. január
Legfrissebb stabil
kiadás
1.20.3 (stabil verzió, 2019. április 5., https://git.savannah.gnu.org/cgit/wget.git/tag/?h=v1.20.3)[1]
Legfrissebb fejlesztői kiadásismeretlen +/-
Programozási nyelv C
Operációs rendszer platformfüggetlen
Állapot aktív
Kategória FTP-kliens / HTTP-kliens
Licenc GNU General Public License 3-as vagy későbbi verzió[2]
A wget weboldala

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.

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]

GWget[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]

Jegyzetek[szerkesztés]

Külső hivatkozások[szerkesztés]