#1프로그래밍/#1-3 Python 예제

[python, selenium] 셀레니움 로그인 예제

HopeDeveloper 2023. 1. 6. 21:21

* 라이브러리 참조

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
from selenium.webdriver.common.by import By
import pyperclip
import time
from bs4 import BeautifulSoup as bs

 

 

1. 크롬 실행하기

self.browser = webdriver.Chrome()

2. 크롬에서 웹 페이지 이동

self.browser.get(site_text)

3. 로그인 버튼 클릭

 1) 네이버 사이트에서 F12 입력
  - 오른쪽 화면과 같이 코드가 표시

 

 2) 마우스 화살표 처럼 보이는 "Select an element..." 버튼 클릭
  ① 검정색에서 파란색으로 색깔이 변경
  ② 그 상태에서 로그인 버튼 클릭

  ③ 클래스 이름 확인 :  'link_login'

elem = self.browser.find_element(By.CLASS_NAME, 'link_login')
elem.click()

4. 로그인 ID, PW 입력 후 로그인 클릭

# 3. id 복사 붙여넣기
elem_id = self.browser.find_element_by_id('id')
elem_id.click()
pyperclip.copy(id_text)
elem_id.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

# 4. pw 복사 붙여넣기
elem_pw = self.browser.find_element_by_id('pw')
elem_pw.click()
pyperclip.copy(pw_text)
elem_pw.send_keys(Keys.CONTROL, 'v')
time.sleep(1)

self.browser.find_element_by_id('log.login').click()

 

[전체 코드]

- 클래스로 만들어 보았다


class CrawlClass :
    def __init__(self):
        print("CrawlClass.__init__()")

    def initialize(self, site_text, id_text, pw_text):
        try:
            print("1. CrawlClass().initialize : webdriver.Chrome() ")
            self.browser = webdriver.Chrome()

            print("2. CrawlClass().initialize : browser.get ", site_text)
            self.browser.get(site_text)

            print("3. CrawlClass().initialize : find_element")
            elem = self.browser.find_element(By.CLASS_NAME, 'link_login')
            elem.click()

            # 3. id 복사 붙여넣기
            elem_id = self.browser.find_element_by_id('id')
            elem_id.click()
            pyperclip.copy(id_text)
            elem_id.send_keys(Keys.CONTROL, 'v')
            time.sleep(1)

            # 4. pw 복사 붙여넣기
            elem_pw = self.browser.find_element_by_id('pw')
            elem_pw.click()
            pyperclip.copy(pw_text)
            elem_pw.send_keys(Keys.CONTROL, 'v')
            time.sleep(1)

            self.browser.find_element_by_id('log.login').click()

        except Exception as e:
            print("Exception : initialize()", e)