import urllib.request #웹 url 을 파이썬이 인식할 수 있게 하는 패키지
from bs4 import BeautifulSoup #html 코드에서 원하는 지점을 빨리 찾을 수 있게 만든 모듈
from selenium import webdriver #손으로 클릭하는 것을 컴퓨터가 하게끔 하는 모듈
from selenium.webdriver.common.keys import Keys #위와 동일
import time #중간중간 sleep 주기위함(슬립을 주지 않으면 제대로 된 이미지 다운받기가 힘들다)
binary = 'C:\chromedriver/chromedriver.exe' #크롬 드라이버 위치 지정
browser = webdriver.Chrome(binary) #브라우저 객체 생성
browser.get("https://www.bing.com/?scope=images&nr=1&FORM=NOFORM")
elem = browser.find_element_by_id("sb_form_q") #검색창 지점을 알아내서 elem에 담는다 (F12)
#find_elements_by_class_name("") #클래스 이름으로 찾을 떄 필요한 코드
# 검색어 입력
elem.send_keys("눈사람")
time.sleep(5)
elem.submit()
# 반복할 횟수
for i in range(1,5): #end 키를 누르면서 아래로 내리는데
browser.find_element_by_xpath("//body").send_keys(Keys.END)
time.sleep(10) #슬립을 5초 주면서 5번 수행한다
time.sleep(10) #슬립 5초
html = browser.page_source #현 페이지의 html 코드를 불러와서
soup = BeautifulSoup(html,"lxml") #BeautifulSoup 이용할 수 있도록 파싱한다
#print(soup) #잘 나오는지 체크
#print(len(soup))
def fetch_list_url(): #이미지의 상세 url 가져오는 함수
params = []
imgList = soup.find_all("img", class_="mimg") #img 테그의 클래스 이름 _img 로 접근
for im in imgList:
params.append(im["src"]) #src 의 값을 가져와서, params 에 append합니다
return params
def fetch_detail_url(): #상세 이미지 url 가져와서 이미지 다운로드 하는 함수
params = fetch_list_url()
#print(params)
a = 1
for p in params:
# 다운받을 폴더경로 입력
urllib.request.urlretrieve(p, "c:/bing/"+ str(a) + ".jpg" )
a = a + 1
fetch_detail_url()
browser.quit()