Wget Nedir? Nasıl Kullanılır?

GNU Wget, internet ağından komut satırı kullanarak dosya indirmeyi sağlayan bir indirme yöneticisidir. GNU tasarısının bir parçasıdır.

AA

Adı World Wide Web ve get'ten türetilmiş olan Wget HTTP, HTTPS ve FTP protokolleri üzerinden indirme işlemleri gerçekleştirebilmektedir. Çoklu indirme, indirme işlemini devam ettirme, bağlantı sınırlandırma, indirme sıralandırma gibi temel işlevlerinin yanı sıra web sayfası indirme gibi işlevler de sunar.

wget Kurulumu

wget, Unix temelli sistemler ve Windows ortamında kolaylıkla indirilebilmekte ve kullanılabilmekte. Aşağıdaki ilgili komut ile Ubuntu ve macOS paket yönetim sistemleri üzerinden indirme işlemi gerçekleştirebilirsiniz.

apt-get install wget
brew install wget

wget Kullanımı

Temel kullanım komutu şu şekildedir:

wget [URL]

Temel komut içerisinde kullanacağınız opsiyonlarla dosya ve dizin indirme, yarım kalan indirme işlemlerini tekrarlama başta olmak üzere bir çok işlemi hızlı bir şekilde uygulayabilirsiniz. Örnek olarak basit bir indirme işlemi gerçekleştirelim. İndireceğimiz dosya AirBase – The European air quality database‘de yer alan Türkiye’ye ait hava kalite veri seti olsun1.

wget https://www.eea.europa.eu/data-and-maps/data/airbase-the-european-air-quality-database/turkey/turkey/at_download/file

Yukarıdaki komutu uyguladığınızda file adında bir dosya indirilecektir. Dosyaya kendiniz isim vermek ve dosya uzantısı uygulamak isterseniz komutu şu şekilde düzenleyebilirsiniz.

wget --output-document=data.zip https://www.eea.europa.eu/data-and-maps/data/airbase-the-european-air-quality-database/turkey/turkey/at_download/file

Yarım kalan bir indirme işlemini ise -c opsiyonu kullanarak devam ettirebilirsiniz. Örnek olarak bu defa OECD Türkiye İşsizlik oranı verilerini indirelim2.

wget -c https://stats.oecd.org/sdmx-json/data/DP_LIVE/.UNEMP.../OECD?contentType=csv&detail=code&separator=comma&csv-lang=en

Aynı zamanda indirme işlemlerinde hız sınırlandırması da belirtebilmekteyiz. Bu işlem için kullanacağımız opsiyon -limit-rate. Bu defa OpenML’deki[Turkiye Student Evaluation veri setini indirelim3.

wget -O data.csv —limit-rate=100k https://www.openml.org/data/get_csv/1798822/phpDaC8GO

Şimdi, indirme işlemlerini sıralı bir liste üzerinden gerçekleştirelim.

wget -i indirilecek-dosya-ve-dizinle.txt

Bir websitesini indirmek istediğinizde kullanabileceğiniz en temel opsiyon -r olacaktır. Site adresini belirterek kullanacağınız opsiyonda site adında bir klasör oluşturulur ve ilgili dosyalar bu klasör içerisinden sunulur. Örnek olarak The World Bank‘ın Türkiye verilerinin olduğu sayfayı indirelim4.

wget -r https://data.worldbank.org/country/turkey

İndirme işleminin yapısal olarak klasör başlangıçlı olması yerine belirtilen dizine doğrudan dosyaların indirilmesini istiyorsak -nd opsiyonunu ekleyebilirsiniz.

wget -r -nd https://data.worldbank.org/country/turkey

Yukarıdaki site indirme işlemlerinde başka dizinler de indirilecektir. -r -nd kullanımında aynı isimli dosya varsa, en son indirilen dosya kaydolur. Sadece belirtilen dizin (directory) ile indirme işleminin sınırlandırılmasını istiyorsanız -m -nd parametrelerini kullanabilirsiniz.

wget -m -np https://data.worldbank.org/country/turkey

İndirme işleminin belirli dosyalar nazarında gerçekleştirilmesini istiyorsak kullanacağımız komut şu şekilde olacaktır.

wget -r -A jpg,png https://data.worldbank.org/country/turkey

Elbette spesifik olarak dosya belirtme işlemi aksi şekilde de gerçekleştirilebilir. Bu defa bir çok işlemi bir arada kullanalım ve tar.gz, jpg formatlı dosyalar haricindeki tüm dosyaların klasor-adi olarak belirttiğimiz klasöre indirilmesini sağlayalım.

wget -r -R tar.gz,jpg -c https://data.worldbank.org/country/turkey -P klasor-adi/

Web sitesi indirme işlemini web sitesini offline olarak görüntüleyebilecek şekilde de gerçekleştirmek mümkün.

wget —mirror -p —convert-links -P ./klasor-adi https://data.worldbank.org/country/turkey

Yukarıdaki işlemlerde aracı bir durum olmadığını varsaydık. Peki, şifreli bir dizine erişmemiz gerekirse indirme işlemini nasıl yapacağız? Örnek durumda FTP üzerinden dosya indirelim.

wget —ftp-user=[kullanici-adi] —ftp-password=[sifra] [dosya-yolu]

Şifreli erişimi biraz daha detaylandıralım ve POST metotu ile veri çekelim. Daha detaylı kullanım ve açıklamalar için Download pages with wget that are protected with cookies sayfasını inceleyebilirsiniz5.

wget ––save-cookies [cerez-adi].txt --keep-session-cookies  ––post-data="username=[kullanici-adi]&password=[sifre]" "http://[alan-adi]/login.php"

Özetle değinebileceğim wget kullanımlarına ek çok daha detaylı çözümler mevcut. man wget ile indirme yöneticisine ait manuel görüntülenebilir. Ayrıca Ubuntu Wiki sayfasını da inceleyebilirsiniz6.