반응형

[셀레니움 기초 3-1편] 네이버 자동 로그인

파이썬, 셀레니움을 사용하여 인터넷에 원하는 정보를 자동으로 스크랩하는 방법을 소개합니다.




목차:




1. 셀레니움 패키지 설치

이 번 포스팅에서는 selenium 3.14.1 버전을 사용합니다.




2. 클립보드 패키지 설치

네이버는 로그인 시 로봇 입력 방지 'captcha' 때문에 클립보드(복사)를 거쳐 ID PW를 입력해야하므로 필요합니다.




3. 예제

네이버 로그인

  • 아래의 코드를 붙여넣고 아이디, 비밀번호를 수정합니다.
# selenium Ver : 3.14.1
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import clipboard
import time

# 웹드라이버 열기 (네이버 메인 화면)
driver = webdriver.Chrome()
driver.get("https://www.naver.com/")

# 네이버 메인화면에서 로그인 버튼 클릭
driver.find_element_by_xpath('//*[@id="account"]/a').click()
time.sleep(1)   # 1초 시간 지연

# 로그인 창에 아이디/비밀번호 입력
loginID = "아이디"
clipboard.copy(loginID)
driver.find_element_by_xpath('//*[@id="id"]').send_keys(Keys.CONTROL, 'v')

loginPW = "비밀번호"
clipboard.copy(loginPW)
driver.find_element_by_xpath('//*[@id="pw"]').send_keys(Keys.CONTROL, 'v')
time.sleep(1)

# 로그인 버튼 클릭
driver.find_element_by_xpath('//*[@id="log.login"]').click()
  • 네이버 로그인의 경우 로봇 입력 방지 captcha를 우회하기 위해 클립보드에 복사, 입력 칸에 붙여넣기 방식을 사용하였습니다. 다른 사이트의 경우, xpath.send_key("ID/PW") 적용할 수 있습니다.

  • 1. 크롬 검사도구를 사용해 xpath, id 등 elements를 얻을 수 있고 element에 맞게 수정해서 사용할 수 있습니다.

    • 이 예제에선 Xpath를 사용했습니다.
      #다양한 find_element_by_ 들을 사용할 수 있습니다.
      driver.find_element_by_xpath(self, xpath)
      driver.find_element_by_css_selector(self, css_selector)
      driver.find_element_by_class_name(self, name)
      driver.find_element_by_link_text(self, link_text)
      driver.find_element_by_name(self, name)
      driver.find_element_by_id(self, id_)
      driver.find_element_by_tag_name(self, id_)
      driver.find_element_by_partial_link_text(self, link_text)



[셀레니움 기초 1편] 패키지 설치 및 웹페이지 열기
[셀레니움 기초 2편] 텍스트 입력 | 버튼 클릭 | 페이지 이동
[셀레니움 기초 3-1편] 네이버 자동 로그인
[셀레니움 기초 3-2편] 쿠팡 자동 로그인
[셀레니움 기초 4편] html 데이터 읽기 bs4


python3.9 | camp-lee@naver.com

반응형

+ Recent posts