라즈베리파이_구글 이미지 수집하기
구글 이미지 수집하기 with selenium
-
소스 해석
from selenium import webdriver as wb from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup as bs from tqdm import tqdm from urllib.request import urlretrieve import time import os
- 설명(위에서 부터)
- 브라우저를 조작하는 도구
- 키 입력을 도와주는 도구(키보드)
- 문서를 파싱해서 선택자 활용을 도와주는 도구
- 반복문 진행 정도를 시각화해주는 도구
- 이미지 다운로드를 도와주는 도구
- 시간제어 도구
- 폴더 생성,삭제,이동 등을 도와주는 도구
keyword = "검색할 키워드"
-
검색할 키워드를 입력한다.
if os.path.isdir('./{}'.format(keyword)) == False : os.mkdir('./{}'.format(keyword))
-
이미지 저장될 폴더를 생성하고 해당 폴더가 있는 지 확인
url = 'https://www.google.com/search?q={}&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjs85-GsN7vAhX4xYsBHR6aBg0Q_AUoAXoECAEQAw&biw=1745&bih=852'.format(keyword) driver = wb.Chrome() # 브라우져 생성 driver.get(url) # url 요청 time.sleep(5) # 페이지 로딩까지 5초 대기 cnt = 0 pre_img_src = [] # 이전에 다운로드된 경로 for j in range(10) : img_html = bs(driver.page_source,'html.parser') # 이미지 태그 수집 images = img_html.select('img.rg_i.Q4LuWd') # 이미지 태그의 src 속성 값 추출 img_src = [] for img in images : src = img.get('src') if src != None : # img 태그에 src 속성이 없는 경우 if src not in pre_img_src : # 이전에 다운로드한 경로에 있는지 검사 img_src.append(src) else : # img 태그에 src 속성이 있는 경우 src = img.get('data-src') if src not in pre_img_src : img_src.append(src) # 파일 다운로드 # img_src를 반복문으로 돌면서 저장, tqdm 사용 for src in tqdm(img_src) : cnt += 1 try : urlretrieve(src,'./{}/{}.png'.format(keyword,cnt)) except : print("수집불가") continue pre_img_src += img_src # 다운로드한 경로를 이전 리스트에 추가 # 화면 스크롤 for i in range(6): driver.find_element_by_css_selector('body').send_keys(Keys.PAGE_DOWN) time.sleep(1)
-
주석을 참고하면 된다.
- 설명(위에서 부터)
Author And Source
이 문제에 관하여(라즈베리파이_구글 이미지 수집하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dfdf/라즈베리파이구글-이미지-수집하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)