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 객체 생성
browser.get("https://www.bing.com/images?FORM=Z9LH")
elem = browser.find_element_by_id("sb_form_q")
#find_elements_by_class_name("") # 클래스 이름으로 찾을때 필요한 코드
# 검색어 입력
elem.send_keys("아이언맨") # 컴퓨터가 아이언맨 글씨를 직접 적는다
elem.submit() # 그리고 엔터를 친다.
# 반복할 횟수
for i in range(1,5): # end 키를 누르면서 아래로 내리는데
browser.find_element_by_xpath("//body").send_keys(Keys.END)
time.sleep(5) # 슬립을 5초씩 주면서 5번 수행한다.
time.sleep(5) # 5초 멈췄다가
html = browser.page_source # 현 페이지의 html 코드를 불러와서
soup = BeautifulSoup(html,"lxml") # BeautifulSoup 을 이용할 수 있도록 파싱한다.
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:/bingimages/"+ str(a) + ".jpg" )
a = a + 1
fetch_detail_url()
browser.quit()