코딩으로 이미지 일괄 다운로드 구현
파이썬으로 웹에서 이미지 일괄 다운로드하기
인터넷에서 이미지를 수집해야 하는 경우가 자주 발생합니다. 특히 블로그 운영자나 디자이너라면 다양한 이미지를 다운로드할 필요가 있을 것입니다. 오늘은 파이썬을 활용하여 특정 웹사이트에서 이미지를 일괄적으로 다운로드하는 방법에 대해 알아보겠습니다. 이를 위해 Selenium과 관련 라이브러리를 세팅하는 과정과 실제 코드를 활용한 이미지 다운로드 방법을 상세히 설명드릴 예정입니다.

필수 라이브러리 설치하기
먼저, 파이썬 환경에 필요한 라이브러리를 설치해야 합니다. 일반적으로 이미지를 다운로드하는 방법으로는 requests
라이브러리를 사용하여 파일을 가져오는 방식이 있습니다. 하지만 많은 경우, JavaScript로 렌더링된 웹페이지에서는 해당 방법이 제대로 작동하지 않을 수 있습니다. 이럴 때 Selenium
을 활용하여 브라우저를 자동으로 띄우고 페이지를 로드하게 만드는 것이 효과적입니다.
먼저 필요한 라이브러리를 설치해주시기 바랍니다. 다음 명령어로 설치할 수 있습니다:
pip install selenium
pip install webdriver-manager
webdriver-manager
는 브라우저 드라이버를 자동으로 관리해주는 도구로, 별도로 ChromeDriver를 다운로드할 필요 없이 최신 드라이버를 설치해주기 때문에 매우 유용합니다.
웹 드라이버 설정 및 초기화
이제 설치한 라이브러리를 활용해 웹 드라이버를 초기화하는 과정으로 넘어가겠습니다. 먼저 이미지를 수집할 웹페이지의 URL과 이미지를 저장할 경로를 설정해야 합니다. 다음은 이를 위한 기본 코드입니다:
# -*- coding: utf-8 -*-
import os
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
# 이미지 저장 경로 설정
save_dir_name = 'downloaded_images'
curpath = os.path.dirname(__file__)
save_dir_path = os.path.join(curpath, save_dir_name)
# 저장할 디렉토리 생성
if not os.path.exists(save_dir_path):
os.makedirs(save_dir_path)
# ChromeDriver 초기화
chrome_driver = ChromeDriverManager().install()
service = Service(chrome_driver)
driver = webdriver.Chrome(service=service)
위 코드를 순차적으로 실행하면, 이미지가 저장될 디렉토리가 생성되고 브라우저가 초기화됩니다.
웹 페이지에서 이미지 수집하기
다음 단계에서는 웹페이지를 열고, 해당 페이지에서 모든 이미지 태그를 찾아서 그 속성을 추출하는 과정을 진행하겠습니다. 아래 코드를 추가해 주세요:
# 웹페이지 열기
target_url = 'https://www.google.com/search?q=cat&tbm=isch'
driver.get(target_url)
# 이미지 로드를 위한 잠시 대기
import time
time.sleep(5)
# 이미지 태그 찾기
images = driver.find_elements(By.TAG_NAME, 'img')
# 이미지 다운로드
for img in images:
img_url = img.get_attribute('src')
if img_url:
# 이미지 파일 다운로드
img_response = requests.get(img_url)
img_name = os.path.join(save_dir_path, 'image_' + str(images.index(img)) + '.jpg')
with open(img_name, 'wb') as f:
f.write(img_response.content)
print(f"다운로드 완료: {img_name}")

코드 실행 및 결과 확인
위의 코드를 모두 작성한 후 실행하면, 설정한 URL에서 이미지를 다운로드하여 지정한 디렉토리에 저장하게 됩니다. 이 과정에서 각 이미지는 ‘image_0.jpg’, ‘image_1.jpg’ …과 같은 형식으로 저장됩니다.

유의사항
- 다운로드할 웹사이트의 이용 약관을 확인하여 저작권을 준수해야 합니다.
- 이미지 URL이 JavaScript로 생성된 경우, Selenium을 통해 페이지를 완전히 로드한 후에 수집해야 합니다.
- 대량의 이미지를 다운로드할 경우, 서버에 부담을 줄이기 위해 지연시간을 고려해야 합니다.
위의 방법을 통해 손쉽게 이미지를 다운로드할 수 있습니다. 코드를 자신이 원하는 대로 수정하며 다양한 웹사이트에서 활용해 보세요. 이 과정이 블로그나 프로젝트에 유용한 자원이 되길 바랍니다.
자주 묻는 질문 FAQ
파이썬으로 이미지를 다운로드하는 방법은 무엇인가요?
파이썬을 사용해 이미지를 다운로드하려면 Selenium을 활용해 웹페이지를 열고, 필요한 이미지 태그를 탐색하여 URL을 추출하는 방식으로 진행합니다.
Selenium을 사용하는 이유는 무엇인가요?
Selenium은 JavaScript로 동적으로 생성된 웹페이지의 데이터를 적절히 수집할 수 있게 돕는 라이브러리입니다. 이로 인해 일반적인 요청 방식으로 데이터를 가져오기 어려운 경우에도 유용합니다.
이미지를 다운로드할 때 유의해야 할 점은 무엇인가요?
이미지 다운로드 시에는 해당 웹사이트의 정책을 확인하여 저작권 문제를 피해야 하며, 대량 다운로드 시에는 서버에 과부하를 주지 않도록 적절한 지연시간을 두는 것이 좋습니다.