<질문>
urllib2 요청 또는 urllib.urlretrieve로 URL에서 이미지를 저장하기 위해 파이썬을 사용할 때 문제가 발생했습니다. 그것은 이미지의 URL이 유효합니다. 탐색기를 사용하여 수동으로 다운로드 할 수 있습니다. 그러나 파이썬을 사용하여 이미지를 다운로드하면 파일을 열 수 없습니다. Mac OS 미리보기를 사용하여 이미지를 봅니다. 감사합니다!
최신 정보:
코드는 다음과 같습니다.
def downloadImage(self):
request = urllib2.Request(self.url)
pic = urllib2.urlopen(request)
print "downloading: " + self.url
print self.fileName
filePath = localSaveRoot + self.catalog + self.fileName + Picture.postfix
# urllib.urlretrieve(self.url, filePath)
with open(filePath, 'wb') as localFile:
localFile.write(pic.read())
다운로드하려는 이미지 URL은
http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg이 URL은 유효하며 브라우저를 통해 저장할 수 있지만 파이썬 코드는 열 수없는 파일을 다운로드합니다. 미리보기에 "손상되었거나 미리보기에서 인식하지 못하는 파일 형식을 사용하고있을 수 있습니다."라고 표시됩니다. Python으로 다운로드 한 이미지와 브라우저를 통해 수동으로 다운로드 한 이미지를 비교합니다. 이전의 크기는 몇 바이트 더 작습니다. 그래서 파일이 완성되지 않은 것 같지만 왜 파이썬이 그것을 완전히 다운로드 할 수 없는지 모르겠습니다.
<답변1>
Windows에서 나를 위해 작동하는 샘플 코드 :
import requests
with open('pic1.jpg', 'wb') as handle:
response = requests.get(pic_url, stream=True)
if not response.ok:
print response
for block in response.iter_content(1024):
if not block:
break
handle.write(block)
<답변2>
import requests
img_data = requests.get(image_url).content
with open('image_name.jpg', 'wb') as handler:
handler.write(img_data)
<답변3>
URL에서 파일을 다운로드하고 이름으로 저장하는 Python 코드 스 니펫
import requests
url = 'http://google.com/favicon.ico'
filename = url.split('/')[-1]
r = requests.get(url, allow_redirects=True)
open(filename, 'wb').write(r.content)
<답변4>
인터넷에서 이미지를 다운로드하고 저장하는 가장 간단한 방법입니다.
urlib.request
꾸러미.
여기에서 이미지 URL (이미지를 다운로드하고 저장하려는 위치)과 디렉토리 (다운로드 이미지를 로컬에 저장하려는 위치, 이미지 이름을 .jpg 또는 .png로 지정)를 전달하면됩니다. local-filename.jpg "는 이것으로 대체합니다.
파이썬 3
import urllib.request
imgURL = "http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg"
urllib.request.urlretrieve(imgURL, "D:/abc/image/local-filename.jpg")
인터넷에서 모든 이미지 URL이있는 경우 여러 이미지를 다운로드 할 수도 있습니다. 해당 이미지 URL을 for 루프에 전달하면 코드가 인터넷에서 이미지를 자동으로 다운로드합니다.
<답변5>
import random
import urllib.request
def download_image(url):
name = random.randrange(1,100)
fullname = str(name)+".jpg"
urllib.request.urlretrieve(url,fullname)
download_image("http://site.meishij.net/r/58/25/3568808/a3568808_142682562777944.jpg")
<답변6>
import urllib.request
import os
img_url = "https://betanews.com/wp-content/uploads/2017/09/firefox-logo.jpg"
img_name = os.path.basename(img_url)
urllib.request.urlretrieve(img_url,img_name)
<답변7>
Python3
import urllib.request
print('Beginning file download with urllib2...')
url = 'https://akm-img-a-in.tosshub.com/sites/btmt/images/stories/modi_instagram_660_020320092717.jpg'
urllib.request.urlretrieve(url, 'modiji.jpg')
출력 결과
<답변8>
리눅스의 경우; wget 명령을 사용할 수 있습니다.
import os
url1 = 'YOUR_URL_WHATEVER'
os.system('wget {}'.format(url1))
<답변9>
이미지 확장을 얻는 방법을 궁금해하는 사람은 이미지 URL에서 문자열 분할 방법을 시도해 볼 수 있습니다.
str_arr = str(img_url).split('.')
img_ext = '.' + str_arr[3] #www.bigbasket.com/patanjali-atta.jpg (jpg is after 3rd dot so)
img_data = requests.get(img_url).content
with open(img_name + img_ext, 'wb') as handler:
handler.write(img_data)
'개발 > Python' 카테고리의 다른 글
UnicodeDecodeError : 'utf8'코덱이 바이트 0x9c를 디코딩 할 수 없습니다. (0) | 2021.01.07 |
---|---|
Python에서 쿼리 문자열을 urlencode하는 방법은 무엇입니까? (0) | 2021.01.07 |
pyqt에서 Qtablewidget의 특정 셀 배경색을 변경하는 방법 (0) | 2021.01.07 |
파이썬 사전 업데이트 방법 물어보다 (0) | 2020.10.02 |