사이트에서 이미지 크롤링하기
'그림플렛폼 프로젝트'에서 우리가 구축한 색추출 모델(knn+mean shift clustering)을 시험해보기 위한 그림 샘플을 구함
참고한 크롤링 사이트: https://gurim.com/search-all/ (그림닷컴 - 그림전체보기)
1페이지부터 286번페이지까지 긁어왔는데 총 13,400개의 .jpg 데이터를 확보함
크롤링 순서
1. 모듈 불러오기
파이썬 기반의 BeautifulSoup: html파일로 크롤링을 진행
크롤링할 주소를 설정해주는 urllib라이브러리도 추가
2. 크롤링 할 주소 입력
해당 사이트의 경우 1페이지부터 286번 페이지까지 있어서 두개의 url로 나누고 가운데 숫자가 들어가도록 함
3. 크롤링 할 주소 열기 & html 파일 가져오기
.find_all('태그') : 해당 태그에 해당되는 모든 부분을 가져옴 / 여러 데이터가 리스트 형식으로 반환
4. 반복을 통해 이미지 하나씩을 설정된 경로에 저장
img의 개수만큼 반복
.attrs['하위속성'] : 태그의 속성중에서 하위태그에 맞는 데이터를 저장
./images 경로에 이미지들을 숫자(n)을 하나씩 증가시키면서 해당 이름으로 저장
크롤링한 사이트를 출력해봤을때 이상하게 src태그에 이미지 경로가 있지 않고 data-original속성에 이미지 경로가 있음
src경로는 static/images 형식으로 url이 나오지 않고 장고를 사용한듯 다른 폴더에 있는게 보임
그래서 data-original이 가지고 있는 이미지의 주소값을 가져오기로 결정
노랑색: data-original 값
파랑색: src 값
중간에 url 데이터에 '/복사본/'과 같은 한글이 들어간 경우가 있어 해당부분은 try(예외처리)로 제외시키고 가져옴
첫 번째 예외처리: img(이미지태그)에서 data-original 옵션이 있는가?
두 번째 예외처리: data-original값(이미지 경로)에 한글이 들어있는가?
[소스코드]
# 그림닷컴 전체 그림 이미지 크롤링
from ast import excepthandler
from bs4 import BeautifulSoup as bs
from urllib.request import urlopen
from urllib.parse import quote_plus
baseUrl = 'https://gurim.com/search-all/?p_sort=1&p_style=0&p_subject=0&p_price=0&p_size_wh=1&p_size=0&p_shape=0&p_color=0&p_num='
tailUrl = '&put-sorting='
n=0
for i in range(1,287):
url = baseUrl + str(i) + tailUrl
html = urlopen(url)
soup = bs(html, "html.parser")
img = soup.find_all('img')
for j in img:
try:
j.attrs['data-original']
tmp_url = j.attrs['data-original']
try:
with urlopen(tmp_url) as f:
print(j.attrs['data-original'])
with open('./images/img' + str(n)+'.jpg','wb') as h: # w - write b - binary
img = f.read()
h.write(img)
n+=1
except:
continue
except:
continue
print("step1 done!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
[결과]
깔끔하게 13400개의 데이터가 잘 저장되었음!
이제 해당 이미지 데이터들로 우리가 여러가지로 구축한 모델에 넣어봐서 색 추출이 잘 되는지 확인해볼 것이다~
'Web > 크롤링' 카테고리의 다른 글
[Selenium] 사람인(Saramin) 채용공고 크롤링 (2) | 2022.06.29 |
---|---|
[Selenium] 프로그래머스(Programmers) 채용공고 크롤링 (0) | 2022.06.29 |
[Selenium] 링크드인(LinkedIn) 채용공고 크롤링 (0) | 2022.06.12 |
댓글