Baixando uma imagem via urllib e python

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

Então, estou tentando fazer um script Python que baixe webcomics e os coloque em uma pasta na minha área de trabalho. Encontrei alguns programas semelhantes aqui que fazem algo semelhante, mas nada parecido com o que eu preciso. O que achei mais semelhante está aqui (http: //bytes.com/topic/python/answers/850927-problem-using-urllib-download-images). Tentei usar este código:

>>> importar urllib >>> imagem = urllib.URLopener() >>> image.retrieve("http://www.gunnerkrigg.com//comics/00000001.jpg";"00000001.jpg") ("00000001.jpg", <httplib.HTTPMessage instância em 0x1457a80>)  

Procurei no meu computador por um arquivo "00000001.jpg", mas tudo o que encontrei foi a imagem em cache dele. Eu nem tenho certeza se salvou o arquivo no meu computador. Uma vez que eu entendo como baixar o arquivo, acho que sei como lidar com o resto. Essencialmente, apenas use um loop for e divida a string no "00000000". "jpg" e incremente o "00000000" até o maior número, que eu teria que determinar de alguma forma. Alguma recomendação sobre a melhor maneira de fazer isso ou como baixar o arquivo corretamente?

Obrigado!

EDIT 15/06/10

Aqui está o script completo, ele salva os arquivos em qualquer diretório que você escolher. Por algum motivo estranho, os arquivos não estavam sendo baixados e eles simplesmente baixaram . Qualquer sugestão sobre como limpá-lo seria muito apreciada. No momento, estou descobrindo como descobrir que existem muitos quadrinhos no site para que eu possa obter apenas o mais recente, em vez de encerrar o programa após um certo número de exceções serem levantadas.

 import urllib import os comicCounter=len(os.listdir("/file"))+1 # lê o número de arquivos na pasta para iniciar o download no próximo quadrinho errorCount=0 def download_comic(url,comicName): """ baixar uma história em quadrinhos na forma de url = http://www.example.com comicName = "00000000.jpg" """ image=urllib.URLopener() image.retrieve(url,comicName) # baixar comicName na URL while comicCounter <= 1000: # não é a solução mais elegante os.chdir("/file") # define onde os arquivos são baixados para tentar: if comicCounter < 10: # precisava ser dividido em 10^n segmentos porque os nomes dos quadrinhos são um conjunto de zeros seguidos por um número comicNumber=str("0000000"+str(comicCounter)) # string contendo o número de quadrinhos de oito dígitos comicName=str(comicNumber+".jpg") # string contendo o nome do arquivo url=str("http:/ /www.gu nnerkrigg.com//comics/"+comicName) # cria a URL para o quadrinho comicCounter+=1 # incrementa o contador de quadrinhos para ir para o próximo quadrinho, deve ser antes do download caso o download gere uma exceção download_comic(url,comicName ) # usa a função definida acima para baixar a url de impressão de quadrinhos se 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 se 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: # sai do programa se algum número fora desse intervalo aparecer quit exceto IOError: # urllib gera um IOError para um erro 404, quando o quadrinho não existe errorCount+=1 # adiciona um a a contagem de erros if errorCount>3: # se mais de três erros ocorrerem durante o download, encerre o programa break else: print str("comic"+ " " + str(comicCounter) + " " + "não existe") # caso contrário diga que o certo número de quadrinhos não existe print "todos os quadrinhos estão atualizados" # imprime se todos os quadrinhos foram baixados