Descargar una imagen a través de urllib y python

| | | | | | | | | | | | | | | | | | |

Así que estoy tratando de hacer un script de Python que descargue webcomics y los coloque en una carpeta en mi escritorio. He encontrado algunos programas similares aquí que hacen algo similar, pero nada como lo que necesito. El que encontré más similar está aquí (http: //bytes.com/topic/python/answers/850927-problem-using-urllib-download-images). Intenté usar este código:

>>> importar urllib >>> imagen = urllib.URLopener() >>> image.retrieve("http://www.gunnerkrigg.com//comics/00000001.jpg";"00000001.jpg") ("00000001.jpg", <httplib.Instancia de mensaje HTTP en 0x1457a80>)  

Luego busqué en mi computadora un archivo "00000001.jpg", pero todo lo que encontré fue la imagen almacenada en caché. Ni siquiera estoy seguro de que haya guardado el archivo en mi computadora. Una vez que entiendo cómo descargar el archivo, creo que sé cómo manejar el resto. Esencialmente, solo use un bucle for y divida la cadena en "00000000". "jpg" e incremente el "00000000" hasta el número más grande, que tendría que determinar de alguna manera. ¿Alguna recomendación sobre la mejor manera de hacer esto o cómo descargar el archivo correctamente?

¡Gracias!

EDITAR 6/15/10

Aquí está el script completo, guarda los archivos en cualquier directorio que elijas. Por alguna extraña razón, los archivos no se estaban descargando y simplemente lo hicieron . Cualquier sugerencia sobre cómo limpiarlo sería muy apreciada. Actualmente estoy trabajando en cómo averiguar que existen muchos cómics en el sitio para poder obtener solo el más reciente, en lugar de que el programa se cierre después de que se genere una cierta cantidad de excepciones.

 import urllib import os comicCounter=len(os.listdir("/file"))+1 # lee el número de archivos en la carpeta para comenzar a descargar en el próximo cómic errorCount=0 def download_comic(url,comicName): """ descargue un cómic en forma de url = http://www.example.com comicName = "00000000.jpg" """ image=urllib.URLopener() image.retrieve(url,comicName) # descargue comicName en URL mientras comicCounter <= 1000: # no es la solución más elegante os.chdir("/file") # establece dónde se descargan los archivos para probar: if comicCounter < 10: # necesitaba dividirse en 10^n segmentos porque los nombres de los cómics son un conjunto de ceros seguidos de un número comicNumber=str("0000000"+str(comicCounter)) # cadena que contiene el número cómico de ocho dígitos comicName=str(comicNumber+".jpg") # cadena que contiene el nombre del archivo url=str("http:/ /www.gu nnerkrigg.com//comics/"+comicName) # crea la URL para el cómic comicCounter+=1 # incrementa el contador del cómic para pasar al siguiente cómic, debe ser antes de la descarga en caso de que la descarga genere una excepción download_comic(url,comicName ) # utiliza la función definida anteriormente para descargar la URL de impresión del cómic si 10 <= comicCounter < 100: comicNumber=str("000000"+str(comicCounter)) comicName=str(comicNumber+".jpg") url=str("http://www.gunnerkrigg.com//comics/"+comicName) comicCounter+=1 download_comic(url,comicName) imprimir url si 100 <= comicCounter < 1000: comicNumber=str("00000"+str(comicCounter)) comicName=str(comicNumber+".jpg") url=str("http://www.gunnerkrigg.com//comics/"+comicName) comicCounter+=1 download_comic(url,comicName) print url else: # salir del programa si aparece algún número fuera de este rango salir excepto IOError: # urllib genera un IOError para un error 404, cuando el cómic no existe errorCount+=1 # agregar uno a el conteo de errores if errorCount>3: # si ocurren más de tres errores durante la descarga, salga del programa break else: print str("comic"+ " " + str(comicCounter) + " " + "no existe") # de lo contrario decir que el número de cómic determinado no existe imprimir "todos los cómics están actualizados" # imprime si todos los cómics están descargados