Python3 urllib imagen retreval

Estoy escribiendo un pequeño script de Python para capturar imágenes a través de imágenes de Google. He logrado que las cosas lleguen al punto en el que tengo las direcciones URL de las imágenes que quiero en una lista útil. Ahora, solo necesito agarrarlos ...

Para cada imagen url hago esto:

    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()

Aquí están los problemas que estoy enfrentando:

intentar abrir algunas de las URL me da 403, aunque puedo abrir las URL directamente en mi navegador. Entonces, hay algo en el encabezado de solicitud HTTP que al servidor de imágenes no le gusta ... ¿alguna idea?

Aquí hay algunos de los resultados:

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

Respuestas a la pregunta(1)

Su respuesta a la pregunta