Urllib2 Modülü İle Python Kullanarak Sitedeki Tüm Dosyaları Çekmek

Sitede yer alan 1’den 10000’e kadar olan fotoğrafları bilgisayarımıza indirmek istediğimizi varsayalım. Ya da html gibi not defteriyle açıldığında anlamlı sonuç vermeyen yani binary modda olan dosyaları indirmek için kullanabileceğimiz bir program. Verilen linkteki JPG dosyalarını çekiyor. Bulunmayan dosyaların yerine hata verilmemesi için bir try – except yapısı kullandık. Kodlarımıza bakalım:

#-*-coding:utf8-*-
import urllib2

for num in range(5,1500):
    try:
        num=str(num)

        adresim="http://foto.gurayyildirim.com.tr/fotolar/"+num+".JPG"
        print adresim
        a=urllib2.urlopen(adresim)
        c="gelenler/"+num+".JPG"
        b=file.open(c,"wb")
        b.write(a.read())

        b.close()
        a.close()
    except:
        continue
    # TRY EXCEPT yapısını kullanma sebebimiz eğer o isimde dosya yoksa, yani
    # numaralar sırayla gitmiyorsa oluşacak olan hataları görmezden geldirme
    # bu sayede program takılmadan ilerler.

Önce urllib2 modülünü kullandığımızı vurgulamalıyız. Ardından, dosyalar JPG uzantılı olduğu için, yani binary modda olduğu için bunları “wb” modda yazdırmamız gerekiyor. Farklı bir denemede muhtemelen hata alacaksınız(en azından ben aldım). Ardından bir döngüye soktuk ve dosyaları indirmesini sağladık. Aslında programımızın yapısı bundan ibaret.

 
comments powered by Disqus