Загрузка картинки через urllib и python

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

Поэтому я пытаюсь создать скрипт Python, который загружает веб-комиксы и помещает их в папку на моем рабочем столе. Я нашел здесь несколько похожих программ, которые делают что-то похожее, но ничего похожего на то, что мне нужно. Наиболее похожий я нашел здесь (http: //bytes.com/topic/python/answers/850927-problem-using-urllib-download-images). Я пытался использовать этот код:

>>> импортировать urllib >>> изображение = urllib.URLopener() >>> image.retrieve("http://www.gunnerkrigg.com//comics/00000001.jpg";"00000001.jpg") ("00000001.jpg", экземпляр <httplib.HTTPMessage по адресу 0x1457a80>)  

Затем я поискал на своем компьютере файл "00000001.jpg", но нашел только его кэшированное изображение. Я даже не уверен, что он сохранил файл на моем компьютере. Как только я понял, как загрузить файл, я думаю, что знаю, как справиться с остальным. По сути, просто используйте цикл for и разделите строку на «00000000». "jpg" и увеличьте "00000000" до наибольшего числа, которое я должен был бы как-то определить. Любые рекомендации о том, как лучше всего это сделать или как правильно скачать файл?

Спасибо!

РЕДАКТИРОВАТЬ 15.06.10

Вот завершенный скрипт, он сохраняет файлы в любой выбранный вами каталог. По какой-то странной причине файлы не загружались, а просто загружались . Любые предложения о том, как очистить его, будут высоко оценены. В настоящее время я работаю над тем, как узнать, что на сайте существует много комиксов, чтобы я мог получить только самый последний из них, а не закрывать программу после возникновения определенного количества исключений.

 import urllib import os comicCounter=len(os.listdir("/file"))+1 # считывает количество файлов в папке, чтобы начать загрузку при следующем комиксе errorCount=0 def download_comic(url,comicName): """ загрузить комикс в виде url = http://www.example.com comicName = "00000000.jpg" """ image=urllib.URLopener() image.retrieve(url,comicName) # загрузить comicName по URL-адресу, пока comicCounter <= 1000: # не самое элегантное решение os.chdir("/file") # указать, куда скачивать файлы, чтобы попробовать: if comicCounter < 10: # необходимо разбить на 10^n сегментов, потому что имена комиксов представляют собой набор нули, за которыми следует число comicNumber=str("0000000"+str(comicCounter)) # строка, содержащая восьмизначный номер комикса comicName=str(comicNumber+".jpg") # строка, содержащая имя файла url=str("http:/ /www.гу nnerkrigg.com//comics/"+comicName) # создает URL для комикса comicCounter+=1 # увеличивает счетчик комиксов для перехода к следующему комиксу, должен быть перед загрузкой, если загрузка вызывает исключение download_comic(url,comicName ) # использует функцию, определенную выше, для загрузки URL-адреса печати комикса, если 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) напечатать URL, если 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: # выйти из программы, если появится какое-либо число вне этого диапазона quit кроме IOError: # urllib вызывает IOError для ошибки 404, когда комикс не существует errorCount+=1 # добавить один в количество ошибок if errorCount>3: # если во время загрузки возникает более трех ошибок, выйти из программы break else: print str("comic"+ " " + str(comicCounter) + " " + "не существует") # в противном случае сказать, что определенный номер комикса не существует print "все комиксы обновлены" # выводит, если все комиксы загружены