가취공부하자

BeautifulSoup로 웹 콘텐츠 이미지 추출 및 다운로드 본문

Python/(책)파이썬과 비지니스 자동화

BeautifulSoup로 웹 콘텐츠 이미지 추출 및 다운로드

keepGGoing 2022. 7. 11. 23:47

 

https://movie.naver.com/movie/bi/mi/basic.naver?code=157297# 

 

마약왕

“애국이 별게 아니다! 일본에 뽕 팔믄 그게 바로 애국인기라!”마약도 수출하면 애국이 되던 1970년대 ...

movie.naver.com

위 페이지에서

빨간 박스 부분의 배우 이미지를 추출하고자 한다.

 

1. 해당 페이지의 HTML을 읽어온다

from bs4 import BeautifulSoup
import urllib.request # urllib2 대체
import os
import re

url = 'https://movie.naver.com/movie/bi/mi/basic.naver?code=157297#'

req = urllib.request.Request(url)
res = urllib.request.urlopen(url).read()

soup = BeautifulSoup(res,"lxml")

2. 

이미지를 다운받기 위한 src에 접근하기 위해서는

<div class='people'> 

<li>

<img src=''>

순서로 접근해야 한다.

from bs4 import BeautifulSoup
import urllib.request # urllib2 대체
import os
import re

url = 'https://movie.naver.com/movie/bi/mi/basic.naver?code=157297#'

req = urllib.request.Request(url)
res = urllib.request.urlopen(url).read()

soup = BeautifulSoup(res,"lxml")
images = soup.find_all("div",{"class":"people"})

print(images)

images에는 <div class='people'> 코드가 들어있다.

from bs4 import BeautifulSoup
import urllib.request # urllib2 대체
import os
import re

url = 'https://movie.naver.com/movie/bi/mi/basic.naver?code=157297#'

req = urllib.request.Request(url)
res = urllib.request.urlopen(url).read()

soup = BeautifulSoup(res,"lxml")
images = soup.find_all("div",{"class":"people"})

#배우 리스트
#li 태그 가져와서 배열 만들기
pe_list = []
for data1 in images:
    pe_list.extend(data1.findAll('li'))
   
print(pe_list)

findAll함수를 통해 <li> 코드 부분 배열로 추출한다.

 

from bs4 import BeautifulSoup
import urllib.request # urllib2 대체
import os
import re

url = 'https://movie.naver.com/movie/bi/mi/basic.naver?code=157297#'

req = urllib.request.Request(url)
res = urllib.request.urlopen(url).read()

soup = BeautifulSoup(res,"lxml")
images = soup.find_all("div",{"class":"people"})

#배우 리스트
#li 태그 가져와서 배열 만들기
pe_list = []
for data1 in images:
    pe_list.extend(data1.findAll('li'))

# 배열에서 img- >src 만 빼내기
for li in pe_list:
    img = li.find('img')
    name = img['alt']
    img_src = img['src']
    #print(img_src,name)
    urllib.request.urlretrieve(img_src,"./img/"+ name+'.jpg') #이미지 다운로드

li안의 img 태그를 빼내고 그 안에 속성들은 인덱스 형식으로 추출한다.

 

결과

참고

https://wikidocs.net/35953

https://hi-guten-tag.tistory.com/8

http://www.acornpub.co.kr/book/automate-it (파이썬 비지니스 자동화, 에이콘출판사, 2018)

 

파이썬과 비즈니스 자동화

파이썬 2.7로 비즈니스 자동화를 위한 필요한 기술을 다루고, 실제로 활용할 수 있도록 도와준다

www.acornpub.co.kr