반응형

안녕하세요. 지난 시간에 이어 두번째 실습을 가지고 왔습니다.

 

지난 실습에서는 도서 이름을 가지고 왔었는데요. 이번 시간에는 도서 이미지를 가져오도록 하겠습니다.

 

실습-01을 아직 보지않으셨다면 보고오시는 것을 추천 드립니다.

 

 

[python] 웹 크롤러(Web crawler) 실습-01

안녕하세요. 지난 시간에 이어 python을 이용한 웹 크롤러를 만드는 시간을 갖도록 하겠습니다. 웹 크롤러 개념은 아래 링크에서 확인하시면 감사하겠습니다. [python] 웹 크롤러(Web crawler)-01.개념 안녕하세요..

python-an.tistory.com

 

앞 부분은 지난 시간에 보셨던 소스코드와 동일합니다.

 

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")

 

아래는 결과입니다.

소스코드 출력 결과

 

다운로드된 이미지들

 

이번 실습은 여기까지입니다. 하시다가 이해가 되지 않는 부분이 있으시면 질문을 올려주십시오.

 

 

python 배우기 : 네이버 카페

본 카페에서는 python 프로그래밍을 함계 학습하고 더 나아가 python을 이용해 크롤러, 기계학습을 학습

cafe.naver.com

+ Recent posts