Wget
wget | |
![]() | |
![]() | |
Fejlesztő | Giuseppe Scrivano, Hrvoje Nikšić |
Első kiadás | 1996. január |
Legfrissebb stabil kiadás | 1.24.5 (stabil verzió, 2024. március 10.)[1] |
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
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
Robusztusság
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
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
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
Á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
- 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
Alapvető használat
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
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
GWget
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
Jegyzetek
Külső hivatkozások
- A hivatalos honlapja
Informatikai portál • összefoglaló, színes tartalomajánló lap