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.
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.
- The European Commission. (2013). Air quality in cities ↩
- OECD Data. (2020). Unemployment rate ↩
- Hilda Fabiola Bernard. (2016). TurkiyeStudentEvaluation. OpenML ↩
- The World Bank. (2019). Turkey ↩
- Jabba Laci. (2011). Download pages with wget that are protected with cookies (Part 1) ↩
- Ubuntu Wiki. Wget ↩