urllib 및 python을 통해 사진 다운로드

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

그래서 저는 웹툰을 다운로드하여 데스크탑의 폴더에 넣는 Python 스크립트를 만들려고 합니다. 여기에서 비슷한 기능을 하는 몇 가지 유사한 프로그램을 찾았지만 제가 필요한 것과는 전혀 다릅니다. 내가 찾은 가장 유사한 것은 바로 여기에 있습니다(http: //bytes.com/topic/python/answers/850927-problem-using-urllib-download-images). 이 코드를 사용해 보았습니다.

>>> urllib 가져오기 >>> 이미지 = urllib.URLopener() >>> image.retrieve("http://www.gunnerkrrigg.com//comics/00000001.jpg";"00000001.jpg") ("00000001.jpg", <httplib.HTTPMessage 인스턴스 at 0x1457a80>)  

그런 다음 컴퓨터에서 "00000001.jpg" 파일을 검색했지만 캐시된 사진만 찾았습니다. 파일을 내 컴퓨터에 저장했는지도 모르겠습니다. 일단 파일을 다운로드하는 방법을 이해하고 나면 나머지를 처리하는 방법을 알 것 같습니다. 본질적으로 for 루프를 사용하고 "00000000"에서 문자열을 분할합니다. "jpg"를 입력하고 "00000000"을 가장 큰 숫자까지 증가시키십시오. 어떻게든 결정해야 할 것입니다. 이 작업을 수행하는 가장 좋은 방법이나 파일을 올바르게 다운로드하는 방법에 대한 권장 사항이 있습니까?

감사합니다!

EDIT 6/15/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) # comicCounter 동안 URL에서 comicName 다운로드 <= 1000: # 가장 우아한 솔루션이 아님 os.chdir("/file") # 시도할 파일 다운로드 위치 설정: if comicCounter < 10: # 만화 이름은 0 뒤에 숫자가 붙음 comicNumber=str("0000000"+str(comicCounter)) # 8자리 만화 숫자가 포함된 문자열 comicName=str(comicNumber+".jpg") # 파일 이름이 포함된 문자열 url=str("http:/ /www.gu nnerkrrigg.com//comics/"+comicName) # 만화의 URL 생성 comicCounter+=1 # 다음 만화로 이동하기 위해 만화 카운터를 증가시킵니다. 다운로드에서 예외가 발생하는 경우 다운로드 전에 있어야 합니다. download_comic(url,comicName ) # 10 <= comicCounter < 100: comicNumber=str("000000"+str(comicCounter)) comicName=str(comicNumber+".jpg") url=str("http://www.gunnerkrrigg.com//comics/"+comicName) comicCounter+=1 download_comic(url,comicName) 100 <= comicCounter <인 경우 url을 인쇄합니다. 1000: comicNumber=str("00000"+str(comicCounter)) comicName=str(comicNumber+".jpg") url=str("http://www.gunnerkrrigg.com//comics/"+comicName) comicCounter+=1 download_comic(url,comicName) print url else: # 이 범위를 벗어난 숫자가 나타나면 프로그램을 종료합니다. quit IOError를 제외하고: # urllib는 만화가 존재하지 않을 때 404 오류에 대해 IOError를 발생시킵니다. errorCount+=1 # 다음에 하나 추가 error count if errorCount>3: # 다운로드 중 오류가 3개 이상 발생하면 프로그램을 종료합니다. 특정 만화 번호가 존재하지 않는다고 말합니다. print "모든 만화는 최신 상태입니다." # 모든 만화가 다운로드되면 인쇄