[ 들어가며 ]
selenium을 사용해
네이버 로그인을 하게 되면
캡챠가 나타나면서
로그인하기가 쉽지 않게 되어 있습니다.
오늘은 간단하게
selenium을 사용하여
네이버에 로그인하는 방법을
알아보겠습니다.
[ 전체 코드 ]
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
browser = webdriver.Edge()
URL = 'https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/'
browser.get(URL)
browser.implicitly_wait(10)
id = "아이디"
password = "비밀번호"
browser.execute_script(f"document.getElementsByName('id')[0].value='{id}'")
time.sleep(1)
browser.execute_script(f"document.getElementsByName('pw')[0].value='{password}'")
time.sleep(1)
browser.find_element(By.XPATH, '//*[@id="log.login"]').click()
time.sleep(1)
browser.execute_script("window.location.href ='https://www.naver.com'")
[ 코드 설명 ]
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
이 부분은 selenium 및 관련 모듈을 가져오는 부분입니다.
webdriver 모듈은 브라우저를 자동으로 조작할 수 있게 해 주며,
By와 Keys 모듈은 웹 요소를 찾고 키보드 이벤트를 시뮬레이션하는 데 사용됩니다.
time 모듈은 간단한 대기 시간을 만들기 위해 사용됩니다.
browser = webdriver.Edge()
이 코드는 edge 브라우저를 사용하겠다는 코드입니다.
URL = 'https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/'
browser.get(URL)
이 코드는
get 함수를 사용해
해당 URL로 접속합니다.

browser.implicitly_wait(10)
이 코드는 브라우저가 로딩될때까지
기다리는 코드로
최대 10초까지 기다립니다.
10초 이내로 로딩이 된다면,
더 이상 기다리지 않고 다음 코드를 실행합니다.
id = "아이디"
password = "비밀번호"
browser.execute_script(f"document.getElementsByName('id')[0].value='{id}'")
time.sleep(1)
browser.execute_script(f"document.getElementsByName('pw')[0].value='{password}'")
time.sleep(1)
위 코드는 네이버 아이디와 비밀번호를 설정하는 부분입니다.
execute_script 함수를 사용하여
JavaScript 코드를 실행하여 아이디와 비밀번호를 입력합니다.
이 부분이 가장 중요합니다.
JavaScript 코드를 실행하여
아이디와 비밀번호를 입력하는 이유는
Selenium의 요소 찾기 함수를 쓰게 되면
캡챠가 나타나
별도의 작업을 해주어야 하는데
JavaScript 코드를 사용하면
캡챠를 건너뛸 수 있습니다.
browser.find_element(By.XPATH, '//*[@id="log.login"]').click()
time.sleep(1)
로그인 버튼을 클릭합니다.
browser.execute_script("window.location.href ='https://www.naver.com'")
로그인이 성공하면
네이버 메인페이지로 이동합니다.
위 코드를 넣은 이유는
로그인을 성공하면
기기를 등록하겠냐는 화면이 나타나는데
그냥 강제로 네이버 메인페이지로 이동을 시키는 코드입니다.
[ 마치며 ]
쉽게 접근할 수 있는 페이지를 크롤링할 경우에는
로그인을 할 필요가 없지만
카페와 같이 로그인이 된 상태에서만
글을 볼 수 있는 페이지를
크롤링하기 위해서는
로그인이 필수요소가 됩니다.
여기를 방문하시면 더 많은 파이썬 관련 자료를 확인할 수 있습니다.
'파이썬(Python)' 카테고리의 다른 글
[ Tkinter ] 파이썬 Tkinter Canvas로 프로그래스바 만들기(진행상태바 만들기 두번째) (1) | 2024.01.09 |
---|---|
[ Tkinter ] 파이썬 진행상태바 만들기, 프로그래스바와 레이블을 활용한 GUI 진행 상황 표시 (0) | 2024.01.08 |
[ 유튜브 다운로드 ] 간단한 유튜브 동영상 다운로드 프로그램 만들기 (0) | 2023.12.10 |
[ Basic ] 파이썬 함수 사용하기 : 함수의 정의와 호출, print(함수호출)시 None이 출력되는 이유 (0) | 2023.12.04 |
[ Basic ] 파이썬 Input() 함수, 사용자 입력 다루기와 유용한 예제들 (0) | 2023.12.02 |