이번에는 픽사베이 이미지 자동 다운로드를 pixabay api 를 이용해서 파이썬으로 구현해보도록 하겠습니다. 파이선으로 크롤링을 하거나 자동포스팅 프로그램을 만들려고하면 이미지를 자동으로 다운로드 하는 기술이 필요합니다. 이럴때 사용하시면 매우 유용할겁니다. pixabay api 를 이용해서 픽사베이 이미지를 파이썬으로 자동다운로드 하는 방법에 대해 궁금하시다면 따라오세요.
1. 픽사베이 로그인후 api 키 얻기
위 사이트에 접속해서 회원가입을 한후 로그인을 합니다.
구글계정이 있다면 쉽게 회원가입이 됩니다. 딱히 적을것도 없이 회원가입이 될겁니다.
로그인을 하신후
https://pixabay.com/ko/service/about/api/
위 주소로 접속하시면 바로 api 키를 확인하실수가 있습니다.
get srarted 를 클릭하세요.
아래로 스크롤을 내려보시면 위와같은 화면이 보일겁니다. 여러분의 api 키를 복사해서 메모장에 저장하신후 잘 보관하시기 바랍니다.
2. 픽사베이 api 자동 다운로드 파이썬 코드
import requests
import json
from urllib import parse
import os
import sys
import urllib.request
API_KEY = '***80582-7c******fd05c0d9dbaddc' #당신의 api key
q="너구리" #검색어
maxImages=50 #이미지 숫자
image_type="all" #Accepted values: "all", "photo", "illustration", "vector"
path = "C:/Users/Administrator/Documents/py/wp/image_wd/img/"+q #저장할 폴더
if not os.path.exists(path):
os.makedirs(path)
else:
print('폴더가 존재합니다')
url3 = f' https://pixabay.com/api/?key={API_KEY}&q={q}&image_type=photo&per_page={maxImages}'
res = requests.get(url3)
text= res.text
d = json.loads(text)
print(d)
success=0
for k in range(0,maxImages):
imgUrl=d['hits'][k]['webformatURL']
print("url:",imgUrl)
url = parse.urlparse(imgUrl)
name, ext = os.path.splitext(url.path)
print(ext)
filename = f'{q}_{k+1}{ext}'
saveUrl = path+'/'+filename #저장 경로 결정
print(saveUrl)
#파일 저장
req = urllib.request.Request(imgUrl, headers={'User-Agent': 'Mozilla/5.0'})
try:
imgUrl = urllib.request.urlopen(req).read() #웹 페이지 상의 이미지를 불러옴
with open(saveUrl,"wb") as f: #디렉토리 오픈
f.write(imgUrl) #파일 저장
success+=1
except urllib.error.HTTPError:
print('에러')
sys.exit(0)
print('다운로드 성공 : '+str(success))
전체 코드는 위와 같습니다. 주석이 있기 때문에 어렵지 않게 해석이 될겁니다.
3. 픽사베이 api 이미지 다운로드 파이썬 코드 해석
위 코드에서 수정해야 할부분에 대해서 알려드립니다.
API_KEY = '25680582-7cd41544d9afd05c0d9dbaddc' #당신의 api key
q="너구리" #검색어
maxImages=50 #이미지 숫자
image_type="all" #Accepted values: "all", "photo", "illustration", "vector"
path = "C:/Users/Administrator/Documents/py/wp/image_wd/img/"+q #저장할 폴더
API_KEY 는 여러분의 키로 넣으셔야 합니다.
픽사베이 홈페이지에서 메모장에 복사해놓으라고한 그 키입니다.
q="너구리"
이미지 검색어를 넣으시면 됩니다.
maxImages=50
다운로드할 이미지 숫자를 입력하시면됩니다. 200개 이하로 넣으시면 됩니다.
image_type="all"
이미지 타입을 지정할수도 있습니다. 오직 포토만 원할경우에는
image_type="photo"
오직 일러스트만 원할경우에는
image_type="illustration"
오직 벡터이미지만 원할경우에는
image_type="vector"
로 수정하시면됩니다.
4. 픽사베이 api 결과값 json 파일 해석
{
"total": 4692,
"totalHits": 500,
"hits": [
{
"id": 195893,
"pageURL": "https://pixabay.com/en/flower-195893/",
"type": "photo",
"tags": "blossom, bloom, flower",
"previewURL": "https://cdn.pixabay.com/photo/flower-195893_150.jpg"
"previewWidth": 150,
"previewHeight": 84,
"webformatURL": "https://pixabay.com/get/35bbf209e13e39d2_640.jpg",
"webformatWidth": 640,
"webformatHeight": 360,
"largeImageURL": "https://pixabay.com/get/ed6a99fd0a76647_1280.jpg",
"fullHDURL": "https://pixabay.com/get/ed6a9369fd0a76647_1920.jpg",
"imageURL": "https://pixabay.com/get/ed6a9364a9fd0a76647.jpg",
"imageWidth": 4000,
"imageHeight": 2250,
"imageSize": 4731420,
"views": 7671,
"downloads": 6439,
"likes": 5,
"comments": 2,
"user_id": 48777,
"user": "Josch13",
"userImageURL": "https://cdn.pixabay.com/user/250x250.jpg",
},
{
"id": 73424,
...
},
...
]
}
json 파일은 위와같이 응답이 나옵니다.
위의 형식으로 볼때 webformatURL 첫번째 값을 읽어올려면
['hits'][0]['webformatURL'] 입니다.
webformatURL 두번째 값을 읽어올려면
['hits'][1]['webformatURL'] 입니다.
webformatURL은 저용량 이미지라고 생각하시면 되겠습니다.
위에 제가 소개한 코드는 webformatURL 즉 저용량 이미지를 다운로드하는 코드입니다.
만약 고화질의 포멧의 이미지를 저장하고 싶다면 코드를 바꾸어야 합니다.
예를들어 largeImageURL 값으로 변경하고싶다면
for k in range(0,maxImages):
imgUrl=d['hits'][k]['webformatURL']
위 코드를 아래로 변경하시면 고화질의 이미지를 다운로드하는 코드로 변하게 됩니다.
for k in range(0,maxImages):
imgUrl=d['hits'][k]['largeImageURL']
이렇게 해서 pixabay api 를 이용해서 픽사베이 이미지를 파이썬으로 자동다운로드 하는 방법에 대해 자세히 알아보았습니다. pixabay api 를 이용해서 픽사베이 이미지를 파이썬으로 자동다운로드 하는 방법에 대해 궁금하셨던분들에게는 유용한 정보가 되었을듯합니다. 다음에는 더욱 유용한 정보로 찾아올것을 약속드리며 이번 포스팅은 여기까지 하도록 하겠습니다. 오늘도 행복한 하루 되세요~ ^^
♥공감은 고래도 춤추게 합니다~ ^^
'파이썬' 카테고리의 다른 글
블로그 썸네일 만들기 프로그램 제작툴 소개 (0) | 2023.07.09 |
---|---|
티스토리 백업 파이썬 코드 (1) | 2023.06.12 |
sitemap 사이트맵에서 url 추출하기 - 파이썬 (0) | 2023.04.25 |
워드프레스 rest api 자동포스팅 이미지 첨부 파이썬 (2) | 2023.03.05 |
파이썬 워드프레스 자동포스팅 이미지 첨부 (0) | 2022.12.03 |
워드프레스 rest api 자동포스팅 파이썬 (10) | 2022.12.02 |
파이썬 워드프레스 자동 포스팅 소스 (2) | 2022.11.26 |
파이썬 한글 인코딩 에러 해결하기 [Python] (0) | 2022.10.22 |
댓글