본문 바로가기

PYTHON SKILL UP

[python] 네이버 이미지 다운로드 받기

네이버 홈페이지의 모든 이미지를 다운로드 해 보자.

import requests
from bs4 import BeautifulSoup
from urllib.request import urlretrieve


url = "https://www.naver.com"
response = requests.get(url) 

html = response.text 
soup = BeautifulSoup(html, 'html.parser') 

import requests
from bs4 import BeautifulSoup
from urllib.request import urlretrieve


url = "https://www.naver.com"
response = requests.get(url) 

html = response.text 
soup = BeautifulSoup(html, 'html.parser') 

네이버 이미지 다운을 위한 코드 앞부분이다.

웹 요청 모듈인 requests와 구조 분석 모듈인 BeautifulSoupimport 한다.

그리고 이미지 다운로드를 위해 urllib.requesturlretrieveimport 해 주자.

네이버의 주소인 https://www.naver.comurl 값으로 한다.

그리고 requests를 사용하여 웹페이지를 요청(get)하고 응답 데이터를 response에 저장한다.

문자 형태의 응답 데이터들을 html에 저장한다. 이것을 구조분석 할 것 이다.

 

구조분석에는 앞서 import한 구조 분석 모듈인 BeautifulSoup를 이용한다.

코드의 형태는 BeautifulSoap(분석할 글자, 분석할 일꾼) 쯤으로 생각하면 된다.

코드에서는 분석할 일꾼 자리에 html.parser라는 것이 있다.

파싱(parsing)의 뜻이 분석, 정리 이니 대충 그정도로 생각해 두자.

그래서 구조 분석한 값을 soup에 저장해 놓는다.

 

 

imgs = soup.select('img') 

for img in imgs:
   t_url = img['src'].split('/')[-1]
   print(t_url)
   urlretrieve(img['src'],'./images/'+ t_url)

자 코드 뒷부분을 마저 보자.

무언가를 찾는 함수에는 요소로 접근하는 방법, 즉 html 접근방식인 findfindAll이 있고,

CSS 방식인 select_oneselect가 있다.

soup에서 이미지를 전부다 긁어올 것이니 select를 사용한다.

그렇게 이미지를 전부 선택해서 imgs에 저장한다.

 

for문 안을 보면, imgs에서 이미지의 링크만을 / 를 기준으로 나눴을 때 맨 뒤의 값을 t_url에 저장한다.

그런 다음 urlretrieve를 사용하여 링크의 이미지를 t_url과 함께 images폴더에 저장한다.

 

 

호오, 이미지가 다운로드되었다.

 

 

코드를 조금만 손보면 네이버 홈페이지 뿐만 아니라 다양한 곳에서 다양한 용도로 사진을 다운받을 수 있다.

확실한건 손으로 일일히 다운받는 것보다는 빠르다는 것이다..!