Dosyaları farklı çevrimiçi kaynaklardan indirmek, web’de gerçekleştirilecek en önemli programlama görevlerinden biridir. Dosya indirmenin önemi, çok sayıda başarılı uygulamanın kullanıcıların dosyaları indirmesine izin vermesiyle vurgulanabilir.
Bu yazıda, Python ile dosya indirmenin en popüler yollarından bazılarına bir göz atacağız.
urllib.request Modülünü kullanma
Urllib.request modülü, HTTP üzerinden bir dosyayı açmak veya indirmek için kullanılır. Özellikle, bu modülün urlretrieve yöntemi, dosyayı gerçekten almak için kullanacağımız şeydir.
Bu yöntemi kullanmak için, urlretrieve yöntemine iki bağımsız değişken iletmeniz gerekir: İlk bağımsız değişken, almak istediğiniz kaynağın URL’sidir ve ikinci bağımsız değişken, indirilen dosyayı depolamak istediğiniz yerel dosya yoludur.
İndireecğimiz resmin yolu şu şekildedir.
1 2 3 | https://images.unsplash.com/photo-1505678261036-a3fcc5e884ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80 |
Aşağıdaki örneğe bir göz atalım:
1 2 3 4 5 6 7 8 9 | import urllib.request print('Python urllib2 ile internetten dosya indirme') url = 'https://images.unsplash.com/photo-1505678261036-a3fcc5e884ee?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80' urllib.request.urlretrieve(url, '/gorseller/resim1.jpg') #Belirttiğiniz diskin altında görsel oluşturulur. Örn: D:/gorseller/resim1.jpg |
Yukarıdaki kodda önce urllib.request modülünü içe aktarıyoruz. Ardından, indirilecek dosyanın yolunu içeren bir değişken url oluşturuyoruz. Son olarak, urlretrieve yöntemini çağırıyoruz ve ona url değişkenini ilk argüman olarak, “/gorseller/resim1.jpg” ise dosyanın hedefi için ikinci parametre olarak iletiyoruz. Herhangi bir dosya adını ikinci parametre olarak geçirebileceğinizi ve doğru izinlere sahip olduğunuzu varsayarak dosyanızın sahip olacağı konum ve adın bu olduğunu unutmayın.
Yukarıdaki komut dosyasını çalıştırın ve “gorseller” dizininize gidin. İndirdiğiniz dosyayı “resim1.jpg” olarak görmelisiniz.
Not: Bu urllib.request.urlretrieve, Python 3’te “eski bir arabirim” olarak kabul edilir ve gelecekte bir noktada kullanımdan kaldırılabilir. Bu nedenle, aşağıdaki yöntemlerden birinin lehine kullanılmasını tavsiye etmem. Python 2’deki popülerliğinden dolayı buraya dahil ettik.
Python requests Modülünü Kullanma
requests modülünü kullanarak da dosya indirebilirsiniz. requests modülünün get metodu, dosya içeriklerini binary biçimde indirmek için kullanılır. Daha sonra, önceki yöntem olan urllib2.urlopen’da yaptığımız gibi, sisteminizde bir dosya açmak için open metodunu kullanabilirsiniz.
Aşağıdaki komut dosyasına bir göz atın:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | import requests print('requests ile resimleri kaydedin') url = 'https://images.unsplash.com/photo-1494253109108-2e30c049369b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80' r = requests.get(url) with open('/gorseller/resim4.jpg', 'wb') as f: f.write(r.content) # datayı alma print(r.status_code) print(r.headers['content-type']) print(r.encoding) |
Python wget Modülünü Kullanma
Python’da dosya indirmenin en basit yollarından biri, hedef dosyayı açmanızı gerektirmeyen wget modülüdür. Wget modülünün indirme yöntemi dosyaları tek bir satırda indirir. Yöntem iki parametreyi kabul eder: indirilecek dosyanın URL yolu ve dosyanın depolanacağı yerel yol.
1 2 3 4 5 6 7 8 | import wget print('wget ile resimleri kaydedin') url = 'https://images.unsplash.com/photo-1494253109108-2e30c049369b?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1350&q=80' wget.download(url, '/gorseller/resim2.jpg') |
Yorum Yap