□ 주 사용 라이브러리
○ 셀레니움
○ 셀레니움 > 웹드라이버 > 알럴트창
○ 셀레니움 > 웹드라이버 > 키
○ 셀레니움 > 웹드라이버 구동
○ 셀레니움 > 웹드라이버 > 옵션 라이브러리
○ 타임지정
# 필요 라이브러리 호출
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys # 값 입력관련 라이브러리
from selenium.webdriver.common.alert import Alert #알럴트 방지관련 라이브러리
from selenium.webdriver.chrome.options import Options #자동꺼짐방지옵션 라이브러리
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()
○ 반복문 : for문
# 필요 라이브러리 호출
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.alert import Alert #알럴트 방지관련 라이브러리
from selenium.webdriver.chrome.options import Options #자동꺼짐방지옵션 라이브러리
import time #타임설정
#네이트 계정 나야나야나니야니니야니
per_id = '계정 아이디'
per_pw = '비밀번호'
# 브라우저 자동 꺼짐옵션지정
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 드라이버 저장 경로를 활용하여 드라이버 변수 지정
core_driver = webdriver.Chrome(options=chrome_options)
core_driver.maximize_window() #생성창 최대크기로 지정
#core_driver.set_window_size(1000,1000) #생성창 크기 커스터마이징 : set_window_size(가로길이, 높이길이)
#core_driver.set_window_position(1000, 0) #행위치, 열위치)
print('드라이버 실행 완료')
# 목표 웹주소 지정
target_link = core_driver.get('https://www.nate.com/')
print('접속완료')
time.sleep(2)
core_driver.find_element(By.XPATH, value = '//*[@id="ID"]').send_keys(per_id)
time.sleep(1)
print('입력완료')
core_driver.find_element(By.XPATH, value = '//*[@id="PASSDM"]').send_keys(per_pw)
time.sleep(1)
print('입력완료')
core_driver.find_element(By.XPATH, value = '//*[@id="btnLOGIN"]').click()
time.sleep(1)
print('로그인성공')
# 액션 : 버튼클릭
core_driver.find_element(By.CLASS_NAME, value = 'pann').click()
print('클릭완료')
time.sleep(1)
# 액션 : 버튼클릭
core_driver.find_element(By.XPATH, value = '//*[@id="header"]/div[2]/div/ul/li[2]/a').click()
print('클릭완료')
time.sleep(1)
# 액션 : 버튼클릭
core_driver.find_element(By.XPATH, value = '//*[@id="header"]/div[2]/div/ul/li[3]/a').click()
print('클릭완료')
time.sleep(1)
# 액션 : 버튼클릭
core_driver.find_element(By.XPATH, value = '//*[@id="header"]/div[2]/div/ul/li[4]/a').click()
print('클릭완료')
time.sleep(1)
# 액션 : 버튼클릭
core_driver.find_element(By.XPATH, value = '//*[@id="header"]/div[2]/div/ul/li[3]/a').click()
print('클릭완료')
time.sleep(1)
#반복문을 활용하여 사진선택
for i in range(4,10):
core_driver.find_element(By.XPATH, value = '//*[@id="thumbnail_218377' + str(i) + '"]').click()
time.sleep(2)
print('사진리스트 선택 완료')
core_driver.find_element(By.XPATH, value = '//*[@id="content"]').send_keys("나이스!!")
time.sleep(2)
print('댓글작성 완료')
core_driver.find_element(By.XPATH, value = '//*[@id="write-reply-btn"]').click()
time.sleep(2)
print('댓글등록 완료')
core_driver.find_element(By.XPATH, value = '//*[@id="commentDiv"]/dl/dd[2]/ul/li/span[2]/a/img').click()
time.sleep(2)
#삭제 경고창 확인
alert_result = Alert(core_driver)
time.sleep(2)
alert_result.accept()
time.sleep(2)
print('알럴트창 확인 및 닫기 완료')
#모든 탭 및 화면 종료. .close() 차이는 .close()는 열려있는 모든탭을 지우고 단, 현재 탭만은 남긴다. 하지만 .quit()은 모두 다 종료 시킨다.
core_driver.quit()
print('크롬 웹드라이버 종료완료')
'Python > Python_Crawling' 카테고리의 다른 글
셀레니움 : 파일업로드 (0) | 2024.01.19 |
---|---|
셀레니움 : 구글 검색어 입력 및 기사 접속, 화면 스크린샷(캡쳐) (0) | 2024.01.18 |
셀레니움 : 네이버 로그인 및 메뉴접속 (0) | 2024.01.18 |
openpyxl을 활용한 데이터 크롤링 및 엑셀저장 (0) | 2023.12.27 |
openpyxl : 엑셀파일 저장 (0) | 2023.12.27 |