from selenium import webdriver # 웹 브라우저 제어
from urllib.parse import quote_plus # 한글 검색어를 URL에 사용할 수 있도록 인코딩
import time
from selenium.webdriver.common.by import By # 웹 요소를 찾기 위한 방법을 지정
from selenium.webdriver.common.keys import Keys # 키보드 입력을 위한 키를 지정
import numpy as np
# 필요한 옵션 설정
chrome_options = webdriver.ChromeOptions() # 크롬 옵션 설정
chrome_options.add_argument('--headless') # 브라우저를 띄우지 않고 백그라운드에서 동작
chrome_options.add_argument('--no-sandbox') # 크롬 드라이버를 사용할 수 있도록 설정
chrome_options.add_argument('--disable-dev-shm-usage') # 크롬 드라이버를 사용할 수 있도록 설정
# Chrome 드라이버 생성
driver = webdriver.Chrome('chromedriver') # 해당 경로에 크롬 드라이버가 있어야 함
# 해당 URL로 브라우저 실행
driver.get('http://naver.com') # 네이버 접속
# 키워드 입력한 페이지 스크린샷
url = 'https://search.naver.com/search.naver?where=image&sm=tab_jum&query=' # 네이버 이미지 검색 URL
kword = "사진" # 검색어
base_url = url + quote_plus(kword) # 한글 검색어를 URL에 사용할 수 있도록 인코딩
driver.get(base_url) # 해당 URL로 브라우저 이동
# 스크롤하며 스크린 샷
body = driver.find_element(By.CSS_SELECTOR,'body') # body 태그 선택
for i in range(5): # 5번 스크롤
body.send_keys(Keys.PAGE_DOWN) # 스크롤 다운
time.sleep(abs(np.random.normal(1, 3))) # 1초에서 3초 사이의 랜덤한 시간 대기
driver.save_screenshot(f'C:\\Users\\5-10\\Documents\\SeleniumPicture\\website_{i}.png') # 해당 경로로 스크린샷 저장
해당코드를 실행하면 백그라운드에서 웹창이 켜지고
사진을 자동으로 검색하고 1~3초 대기한뒤 페이지다운을 누른뒤 스크린샷 저장
여기선 총 5번 저장함
참고블로그
'DataScience > Crawling' 카테고리의 다른 글
pandas selenium base64 재미로 보는 예제 (0) | 2023.03.07 |
---|---|
Crawling 구글자동검색이미지다운 (0) | 2023.03.06 |