□ 주 사용 라이브러리
○ 셀레니움
○ 셀레니움 > 웹드라이버 > 키
○ 셀레니움 > 웹드라이버 구동
○ 셀레니움 > 웹드라이버 > 옵션 라이브러리
○ 셀레니움 > 웹드라이버 > 마우스커서
○ 타임지정
from selenium import webdriver
from selenium.webdriver.chrome.options import Options #크롬 자동방지 등 옵션 활용 라이브러리
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리
from selenium.webdriver.common.keys import Keys #값입력시 활용 라이브러리
import time #실행 후 대기시간 라이브러리
□ 주 사용 함수
○ 드라이버 구동 : .webdriver.Chrome( )
○ 생성창 최대크기 : .maximize_window()
○ 생성창 크기지정 : .set_window_size(가로,높이)
○ 생성창 위치좌표 : .set_window_position(행위치, 열위치)
○ 타겟 주소 지정함수 : .get('주소')
○ id value를 활용한 값 입력 : .find_element(by='id', value='값').send_keys(입력값)
○ id value를 활용한 클릭 : .find_element(by='id', value='값').click()
○ x-path를 활용한 클릭 : .find_element(By.XPATH, value = 'xpath 값').send_keys(입력값)
○ x-path를 활용한 텍스트 입력 : .find_element(By.XPATH, value = 'xpath 값').click()
○ Alret(경고창) 확인관련 변수 : 변수명 = Alert(드라이버)
○ Alret(경고창) 확인 : Alert(드라이버) 변수명.accept()
○ 창 닫기 : 드라이버.quit()
○ 스크린샷 후 파일 저장 : .get_screenshot_as_file("저장경로")
○ 사진별 캡쳐 후 저장 : .find_element(태그값).screenshot("저장경로")
○ 스크롤 다운 : .execute_script("window.scrollTo(0,다운할 크기)")
○ 마우스 호버 : core_move.move_to_element( 태그값 ).perform()
○ 반복문 : for문
※영상에는 잘 보이지 않지만 이미지별 호버시 약간 흐려지는 부분이 있는데 그 효과가 호버가 된 것을 의미
※위에 영상과 같이 사진별 마우스 호버 코드에 아래 영상과 같은 사진별 캡쳐 코드 작성
#필요라이브러리 추출
from selenium import webdriver
from selenium.webdriver.chrome.options import Options #크롬 자동방지 등 옵션 활용 라이브러리
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리
from selenium.webdriver.common.keys import Keys #값입력시 활용 라이브러리
import time #실행 후 대기시간 라이브러리
# 브라우저 자동 꺼짐옵션지정
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 검색어 지정
search_word = input('■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n검색하고자 하시는 키워드를 입력해주세요■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■\n:\t')
# 드라이버 구동 : 드라이버 저장 경로를 활용하여 드라이버 변수 지정
core_driver = webdriver.Chrome(options=chrome_options) #예전 셀리니움 버젼에는 경로를 직접지정했으나, 업데이트 되어 경로입력을 안해도됨
# 마우스 드라이버 구동
core_move = ActionChains(core_driver)
# 웹창 사이즈
core_driver.set_window_size(800,1200) #생성창 크기 커스터마이징 : set_window_size(가로길이, 높이길이)
core_driver.set_window_position(1000, 0) #행위치, 열위치)
# 접속 페이지 지정
core_driver.get('https://search.daum.net/search?nil_suggest=btn&w=img&DA=SBC&q='+search_word)
print('■■■■■■■■■■■■■■■■■ 입력키워드 관련 접속완료')
# 액션 : 스크롤
for s in range(1,21): #범위지정
a = 0
a += s
# 액션 : 마우스 호버
# 마우스 포인트를 사진위에 올림
core_move.move_to_element(
core_driver.find_element(By.XPATH, value = '//*[@id="imageColl"]/div[4]/div/div[1]/div[' + str(a) + ']/div[1]/a/img')
).perform()
# 사진별 스크린샷 및 저장
core_driver.find_element(By.XPATH, value = '//*[@id="imageColl"]/div[4]/div/div[1]/div[' + str(a) + ']/div[1]/a/img').screenshot("C:/python/screent_shot/test" + search_word + str(a) + ".png")
time.sleep(4)
print(f'■■■■■■■■■■■■■■■■■ {a} 위치이동 및 사진다운 완료')
time.sleep(2)
print(f'■■■■■■■■■■■■■■■■■ {a} 까지 호버이동/사진다운 완료')
time.sleep(2)
core_driver.quit()
print(f'■■■■■■■■■■■■■■■■■ 셀리니움 종료')
'Python > Python_Crawling' 카테고리의 다른 글
네이버 API : 파이썬 코딩 (1) | 2024.01.21 |
---|---|
API/JSON 이란?(+postman 활용 데이터 get) (0) | 2024.01.19 |
셀레니움 : 파일업로드 (0) | 2024.01.19 |
셀레니움 : 구글 검색어 입력 및 기사 접속, 화면 스크린샷(캡쳐) (0) | 2024.01.18 |
셀레니움 : 네이트 메뉴버튼클릭 및 댓글작성, 알럴트(경고)창 통제 (0) | 2024.01.18 |