안녕하세요. 지난 시간에 이어 두번째 실습을 가지고 왔습니다.
지난 실습에서는 도서 이름을 가지고 왔었는데요. 이번 시간에는 도서 이미지를 가져오도록 하겠습니다.
실습-01을 아직 보지않으셨다면 보고오시는 것을 추천 드립니다.
앞 부분은 지난 시간에 보셨던 소스코드와 동일합니다.
from bs4 import BeautifulSoup
import urllib
# 검색할 사이트
root_url = "http://www.yes24.com/24/category/bestseller?CategoryNumber=117&sumgb=06"
# HTML 헤더
head = {'User-Agent' : "Magic Browser"}
# 요청보내기
request = urllib.request.Request(root_url, headers = head)
# 응답 받기
response = urllib.request.urlopen(request)
# 응답을 Beautifulsoup 패키징화하기
soup = BeautifulSoup(response.read().decode('euc-kr','replace'))
그리고 디렉토리(directory)를 만들어 줍니다. 이걸 만드는 목적은 우리가 다운로드할 이미지를 저장하기 위해서 입니다.
import os # 시스템 함수
# 이미지를 저장할 디렉토리
directory_path = "book_image"
# 디렉토리가 존재하지 않을 시 자동 생성
if not os.path.exists(directory_path):
os.makedirs(directory_path)
아래 소스코드는 도서 이미지를 다운로드하는 소스코드입니다.
# 도서 이미지를 포함하고 있는 태그
contents = soup.find_all('div', {'class':'goodsImgW'})
for content in contents:
# 각 도서를 의미하는 <a> 태그
book_image = content.find_all('a')
# 태그안에 있는 모든 이미지
for i in range(0, len(book_image)):
if i % 2 ==0:
# 이미지 URL
image_url = book_image[i].find_all('img')[0].get("src")
print(image_url)
# 이미지 이름
image_name = book_image[i].find_all('img')[0].get("alt")
print(image_name)
urllib.request.urlretrieve(image_url, directory_path+"/"+image_name+".jpg")
아래는 결과입니다.
이번 실습은 여기까지입니다. 하시다가 이해가 되지 않는 부분이 있으시면 질문을 올려주십시오.
'크롤러(Crawler)' 카테고리의 다른 글
[python] 웹 크롤러(Web crawler) 실습-02_도서 목록 가져오기 (0) | 2020.05.04 |
---|---|
[python] 웹 크롤러(Web crawler) 실습-01_HTML 구조 확인 (0) | 2020.05.04 |
[python] 웹 크롤러(Web crawler)-01.개념 (0) | 2020.05.02 |