Review
참고 포스팅 : 2020/09/14 - [Python Programming/Using Packages] - [데이터 크롤링] Selenium을 이용한 동적 페이지 크롤링
안녕하십니까, 간토끼입니다.
제가 얼마 전에 인공지능 관련 공모전을 준비하면서 CNN 알고리즘을 이용해 이미지 데이터 분석을 하고자 직접 Custom Image Set을 구축했었는데요.
이 image set을 위해 직접 여러 포털 사이트를 뒤져가며 목적에 맞는 이미지를 수집했었습니다.
마침 이 코드가 이전 포스팅에서 다루었던 selenium과 beautifulsoup을 활용한 짬뽕 코드길래
많은 분들께 도움도 드릴 겸 공유하고자 합니다.
# 1. 활용 library
from urllib.request import urlopen
from urllib.request import urlretrieve
from urllib.parse import quote_plus
from bs4 import BeautifulSoup
from selenium import webdriver
import os
# 2. 검색어 입력
search = input("검색어")
url = f'https://www.google.com/search?q={quote_plus(search)}&sxsrf=ALeKk02QeiWfv6bCTCr7BF_BPHDuAyPmew:1594639559008&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiBiNajj8rqAhXCIqYKHcAECvgQ_AUoAXoECBQQAw&biw=1536&bih=722'
# 3. 이미지 수집
driver = webdriver.Chrome()
driver.get(url)
for i in range(500):
driver.execute_script("window.scrollBy(0,10000)")
html = driver.page_source
soup = BeautifulSoup(html)
img = soup.select('img')
n = 1
imgurl = []
for i in img:
try:
imgurl.append(i.attrs["src"])
except KeyError:
imgurl.append(i.attrs["data-src"])
for i in imgurl:
urlretrieve(i, "저장경로path설정하세요"+search+str(n)+".jpg")
n += 1
driver.close()
간단하게 코드만 리뷰하면
1) driver.execute_script("window.scrollBy(0,10000)") : 이를 통해 스크롤을 쭉 내림으로써 많은 이미지를 노출시킵니다.
- 원하는 검색어를 입력 후 검색 결과에서 이미지 탭을 누르면 스크롤을 밑으로 내려야만 이미지가 계속 나타나는 것을 알 수 있습니다.
- 이러한 동적 페이지의 특성을 이용해 스크롤을 내려줌으로써 검색 결과를 노출시킵니다.
2) urlretrieve(i, "저장경로path설정하세요"+search+str(n)+".jpg") : 파일 저장할 경로에 "검색어1" 로 이미지 저장
- "저장경로path설정하세요" 는 본인이 수집한 이미지를 저장할 경로를 넣어줍니다.
- search+str(n) 은 앞서 input으로 입력한 검색어명, 그리고 파일의 순서를 넣어줌으로써 파일명을 만들어줍니다.
(ex. search : rabbit => rabbit1, rabbit2, ... , rabbit100)
잘 수집하셔서 연습용 custom image set을 갖춰보시기 바랍니다.
감사합니다.
잘 읽으셨다면 게시글 하단에 ♡(좋아요) 눌러주시면 감사하겠습니다 :)
(구독이면 더욱 좋습니다 ^_^)
- 간토끼(DataLabbit)
- University of Seoul
- Economics, Data Science
'Python Programming > Using Packages' 카테고리의 다른 글
[데이터 크롤링] Selenium을 이용한 동적 페이지 크롤링 (6) | 2020.09.14 |
---|---|
[데이터 크롤링] HTML 태그, 옵션을 '적극' 활용한 파이썬 크롤링 업그레이드 (0) | 2020.05.28 |
[데이터 크롤링] 파이썬 크롤링 데이터 엑셀로 저장하기 with Openpyxl 패키지 (4) | 2020.05.26 |
[데이터크롤링] Requests, BeautifulSoup 패키지를 이용한 파이썬 크롤링 맛보기 (1) | 2020.05.24 |
[데이터크롤링] 데이터크롤링을 위해 HTML 이해하기 (0) | 2020.05.23 |