Python selenium으로 로그인 구현
#현재 3.14.1 selenium 버전 사용중
from selenium import webdriver
#타임 객체 선언
from time import sleep
import requests
from bs4 import BeautifulSoup as bs
#크롬 웹 드라이버 경로
driver = webdriver.Chrome('C:\Chrome_Driver\chromedriver.exe')
#크롬으로 블랙보드 로그인 화면 접속
url = "https://ecampus.chungbuk.ac.kr/"
driver.get(url)
#아이디와 비밀번호 입력(0.5초씩 기다리기) - 너무 빠르면 대형 사이트는 트래픽 공격으로 인식
sleep(0.5)
driver.find_element_by_name('uid').send_keys('아이디')
sleep(0.5)
driver.find_element_by_name('pswd').send_keys('비밀번호')
#Xpath
driver.find_element_by_xpath('//*[@id="entry-login"]').click()
프로젝트에 앞서 cmd(명령프롬프트)에 설치할 것들!
- python -m pip install selenium==3.14.1
#3.14.1 버전으로 다운 받음
- python -m pip install requests
- 크롬 웹 드라이브 설치 (크롬 웹 드라이버 경로 필요, cmd X)
예외처리 - try/except
##전역변수 선언##
i=1 #로그인 예외처리 변수
#로그인 실패 예외처리 - 실패시 다시 로그인 / 성공시 넘어감
while(i):
try:
#크롬으로 블랙보드 로그인 화면 접속
url = "https://ecampus.chungbuk.ac.kr/"
driver.get(url)
#아이디와 비밀번호 입력(0.5초씩 기다리기) - 너무 빠르면 대형 사이트는 트래픽 공격으로 인식
print('user_id : ')
user_id = input()
sleep(0.5)
driver.find_element_by_name('uid').send_keys(user_id)
print('user_pw : ')
user_pw = input()
sleep(0.5)
driver.find_element_by_name('pswd').send_keys(user_pw)
#Xpath
driver.find_element_by_xpath('//*[@id="entry-login"]').click()
#사이트 이동
driver.get('https://ecampus.chungbuk.ac.kr/ultra/stream')
#while반복 멈추기
i=0
except:
pass
- 로그인 실패 시, 다시 로그인하도록 반복문 처리
- 로그인 성공 시 정상적으로 try 안 코드를 동작하나, 실패 시 except의 내용을 동작