from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager # Chrome driver 자동 업데이트
# 브라우저 꺼짐 방지
chrome_options = Options()
chrome_options.add_experimental_option("detach", True)
# 불필요한 에러메시지 노출 방지
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"])
# Chrome driver Manager를 통해 크롬 드라이버 자동 설치
service = Service(excutable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service, options = chrome_options)
# 이동하려는 해당 웹페이지 주소
driver.get("http://naver.com")
추가적으로, 웹페이지가 켜진 후 해당 페이지에서 5초간 확인할 수 있게 하는 옵션과 화면을 최대화 사이즈로 보여주는 옵션을 추가
driver.implicitly_wait(5)
driver.maximize_window()
URL에 맞게 화면이 표시되었는지 확인해준다
해당 영역 마우스 우측 클릭 > Copy > selector
라이브러리 하나 더 추가
from selenium.webdriver.common.by import By
# 아이디 입력창
driver.find_element(By.CSS_SELECTOR, "")
아이디 입력창 찾을 수 있게 코드 추가 후 "" 사이에 ctrl+c한 selector를 ctrl+v
id라는 변수에 담아줄 수 있도록 설정
클릭과 키보드 입력을 받을 수 있도록 설정
# 클릭하도록 설정
id.click()
# 키보드 입력 설정
id.send_keys("네이버 아이디") # "네이버 아이디"에는 본인 네이버 아이디 입력
위 코드를 ctrl+c, ctrl+v하여 비밀번호도 아이디와 똑같이 반복
# 비밀번호 입력창 찾기
pw = driver.find_element(By.CSS_SELECTOR, "#pw")
# 클릭하도록 설정
pw.click()
# 키보드 입력 설정
pw.send_keys("네이버 비밀번호") # "네이버 비밀번호"에는 본인 네이버 비밀번호 입력
로그인도 똑같이 버튼 태그 클릭하여 copy selector
# 로그인 버튼 클릭
login_btn = driver.find_element(By.CSS_SELECTOR, "#log\.login")
login_btn.click()
#log.login 이 부분이 ctrl+v를 통해 selector 붙여넣기한 부분
실행을 하면 입력을 하는데 너~~~무 빨리 입력한 나머지 네이버에서 bot으로 착각해
자동입력방지문자를 입력하라고 한다
따라서, 사람이 한 것처럼 보여주기 위해 세가지 라이브러리를 더 추가해준다
cmd 창에서
pip install pyautogui
pip install pyperclip
입력하여 필요한 것들 다운로드
import time
import pyautogui
import pyperclip
해당 라이브러리는 클립보드에 텍스트를 복사, 붙여넣기 하는 기능이다
그리고, send_keys 부분에서 빠르게 입력하여 발생하는 것이므로, 해당 부분을 바꾸어준다.
[id.send_keys("네이버 아이디")] >> 이 부분을 변경해준다 (pw도 마찬가지)
pyperclip.copy("네이버 아이디")
pyautogui.hotkey("ctrl", "v")
time.sleep(2)
최종
추가로 저 마지막에 새로운 기기 등록도 클릭 설정하면 될 것 같다
참조: 인프런 - 이것이 진짜 크롤링이다
https://www.inflearn.com/course/%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%81%AC%EB%A1%A4%EB%A7%81-%EA%B8%B0%EC%B4%88/dashboard
클립보드에 텍스트를 복사, 붙여넣기 하는 거 대신 time.sleep() 초를 조금 더 길게 주면 안되나요?