Python3-Urllib-Image-Retreval

Ich schreibe ein kleines Python-Skript, um Bilder über Google Bilder zu erfassen. Ich habe es geschafft, die Dinge so weit zu bringen, dass ich die URLs der gewünschten Bilder in einer praktischen Liste habe. Jetzt muss ich sie nur noch schnappen ...

Für jede Bild-URL mache ich Folgendes:

    print("Retrieving:{0}".format(sFinalImageURL))
    sExt = sFinalImageURL.split('.')[-1]
    #u = urllib.request.urlopen(sFinalImageURL)
    try:
        u = urllib.request.urlopen(sFinalImageURL)
    except:
        print("error: cannot retrieve image")
        continue
    raw_data = u.read()
    print("read {0} bytes".format(len(raw_data)))
    u.close()
    global sImagesFolder
    try:
        f = open("{0}/{1}_{2}.{3}".format(sImagesFolder,sImage,i,sExt),'wb')
        f.write(raw_data)
        f.close()
    except:
        print("couldn't write to {0}/{1}_{2}.{3}".format(sImagesFolder,sImage,i,sExt))
    print()

Hier sind die Probleme, auf die ich stoße:

Beim Versuch, einige URLs zu öffnen, erhalte ich den Wert 403, obwohl ich die URLs direkt in meinem Browser öffnen kann. Der HTTP-Anforderungsheader enthält also etwas, das dem Image-Server nicht gefällt ... irgendwelche Ideen?

Hier sind einige der Ausgaben:

Retrieving:http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Timba%2B1.jpg/220px-Timba%2B1.jpg

error: cannot retrieve image

Retrieving:http://upload.wikimedia.org/wikipedia/commons/thumb/2/26/YellowLabradorLooking_new.jpg/260px-YellowLabradorLooking_new.jpg

error: cannot retrieve image
Retrieving:http://1.bp.blogspot.com/-7SsJ1n3RdoA/Tf07NOgD5nI/AAAAAAAAABo/tl8qLLIU01Y/s1600/english-shepherd-dog-0003.jpg

read 11123 bytes

Retrieving:http://completedogfood.net/wp-content/uploads/2010/07/complete-dog-food.bmp
read 419630 bytes

Antworten auf die Frage(1)

Ihre Antwort auf die Frage