프로그래밍/python

Python으로 이미지 크롤링 및 다운로드 받기

싯타마 2020. 9. 4. 17:21

Python으로 이미지 크롤링 다운로드 해보기

검색엔진을 네이버를 사용

 

1. 먼저 필요한 패키지를 다운로드 받음

필요한 패키지: beautifulsoup4, requets

 

터미널 또는 cmd창에 

 

pip install beautifulsoup4

pip install requests

입력 후 Enter 

 

2. 패키지 import 하기

from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
from urllib.parse import quote_plus

1) url 오픈을 위한 패키지

2) beautifulsoup4를 사용하기 위한 패키지

3) url을 구성요소로 구문 분석하기 위한 패키지

 

3. url 가져오기

baseUrl = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query=' # 네이버 검색url
plusUrl = input('검색어를 입력하세요 : ') # 검색어 질문
url = baseUrl + quote_plus(plusUrl) # url로 이동하기위한 쿼리문자열 만들기
html = urlopen(url) # url 열기
soup = bs(html, "html.parser")
img = soup.find_all(class_='_img', limit = 50) #클래스가 _img인 사진 50장으로 제한

 

4. 이미지 가져오기 및 다운로드 

n = 1
for i in img: # 이미지를 50개 저장하기 위한 반복문
    imgUrl = i['data-source'] 
    with urlopen(imgUrl) as f:
        with open('./img/' + plusUrl + str(n)+'.jpg','wb') as h: # 이미지 + 사진번호 + 확장자는 jpg
            img = f.read() #이미지 읽기
            h.write(img) # 이미지 저장
    n += 1
print('다운로드 완료')

결과 화면을 확인하기 전에 해당 python파일이 있는 곳에 img라는 폴더를 생성해야 함( 다운로드할 디렉터리 이름을 img로 해놨기 때문)

 

5. 전체 코드

from urllib.request import urlopen
from bs4 import BeautifulSoup as bs
from urllib.parse import quote_plus

baseUrl = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query=' # 네이버 검색url
plusUrl = input('검색어를 입력하세요 : ') # 검색어 질문
url = baseUrl + quote_plus(plusUrl) # url로 이동하기위한 쿼리문자열 만들기
html = urlopen(url) # url 열기
soup = bs(html, "html.parser")
img = soup.find_all(class_='_img', limit = 50) #클래스가 _img인 사진 50장으로 제한

n = 1
for i in img: # 이미지를 50개 저장하기 위한 반복문
    imgUrl = i['data-source'] 
    with urlopen(imgUrl) as f:
        with open('./img/' + plusUrl + str(n)+'.jpg','wb') as h: # 이미지 + 사진번호 + 확장자는 jpg
            img = f.read() #이미지 읽기
            h.write(img) # 이미지 저장
    n += 1
print('다운로드 완료')

 

6. 결과 화면

 

1) cmd창

 

2) 다운로드 폴더

이상 Python으로 이미지 크롤링 및 다운로드하기