강의는 셀레니움 구버전이라
새로운 버전의 셀레니움 코드를 공유합니다.
from ast import keyword
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
#css 선택자 를 사용하려면 By 가 있어야 함
from selenium.webdriver.common.by import By
#키전송하려면 Keys 가 있어야함
from selenium.webdriver.common.keys import Keys
# 크롬 드라이버 자동 업데이트
from webdriver_manager.chrome import ChromeDriverManager
#os 는 폴더만들기등 window 명령어를 수행함
import os
#잘은모르지만 일단 다운로드 하는데 필요함
import urllib.request
명령프롬프트를 띄워줌
import pyautogui
# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 불필요한 에러 메시지 없애기
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options=chrome_options)
#검색어 입력
keyword = pyautogui.prompt("검색어를 입력하세요>>>")
# 웹페이지 해당 주소 이동
if not os.path.exists(f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}'):
os.mkdir(f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}')
url = f"https://search.naver.com/search.naver?where=image&sm=tab_jum&query={keyword}"
#로딩시 대기
driver.implicitly_wait(5)
#창 최대화
driver.maximize_window()
#주소이동
driver.get(url)
time.sleep(1)
#무한스크롤 처리
before_h = driver.execute_script("return window.scrollY")
#무한스크롤
while True:
#맨밑으로 스크로 ㄹ내리기
driver.find_element(By.CSS_SELECTOR,"body").send_keys(Keys.END)
time.sleep(1)
after_h = driver.execute_script("return window.scrollY")
if after_h == before_h:
break
before_h = after_h
time.sleep(1)
#이미지 태그 추출
imgs = driver.find_elements(By.CSS_SELECTOR,"._image._listImage")
for i, img in enumerate(imgs, 1):
#각이미지의 태그 추출
img_src = img.get_attribute("src")
print(i, img_src)
urllib.request.urlretrieve(img_src, f'2.인프런수업/실전편/04.네이버이미지크롤링/{keyword}/{i}.png')
코드 공유 감사합니다~~~~!
답글