Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 프레임워크
- 업비트
- 라즈베리파이
- Laravel
- 코드이그나이터
- codeigniter
- ubuntu
- Selenium
- TiL
- 맛집
- 회고
- 제주도
- Ubuntu 20.04
- MySQL
- 라즈비안
- 옵티머스 g
- 옵지
- 우분투 20.04
- php
- 맥
- C
- 라라벨
- 20.04
- 셀레니움
- Raspberry Pi
- 우분투
- 옵G
- 옵티머스g
- upbit
- FMS
Archives
- Today
- Total
평범한 이야기들
[Selenium] Pyperclip 를 이용해서 네이버 로그인하기 본문
728x90
Pyperclip?
Pyperclip은 복사/붙여넣기 클립보드 기능 사용을 위한 크로스 플랫폼 파이썬 모듈입니다.
Pyperclip을 사용해서 간단하게 파이썬으로 클립보드에 텍스트를 ‘복사’하고, 저장한 텍스트를 ‘붙여넣기’할 수 있습니다.
Python 2, 3 버전에서 동작을 합니다.
Pyperclip 설치
pip를 이용해서 설치를 하시면 됩니다.
윈도우 : pip install pyperclip
맥 & 리눅스 : pip3 install pyperclip
Pyperclip 기본 사용 방법
import pyperclip
pyperclip.copy('Copy Text') # pyperclip.copy(): 클립보드에 텍스트를 복사합니다.
pyperclip.paste() # pyperclip.paste(): 클립보드에 저장된 텍스트를 붙여넣습니다.
클립보드에 텍스트를 복사하고, 다시 붙여넣기 한 후 출력합니다.
네이버 로그인 방법
셀레니움과 Pyperclip을 이용해 네이버에 로그인하는 소스코드입니다. 아이디하고 패스워드를 입력하는 사이에 일정한 텀을 주어야 합니다. 너무 빠르게 입력을 하면 네이버 측에서 봇으로 인식을 하고 캡챠를 띄우는 경우가 많이 존재합니다.
# -*- coding: utf-8 -*-
import time
import random
import pyperclip
import platform
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.keys import Keys
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
import undetected_chromedriver as uc
# 운영체제에 맞게 ctrl, cmd 키 변경 (mac os 호환)
def paste_key(element):
if os_info != 'Darwin' :
element.send_keys(Keys.CONTROL, "v")
else :
element.send_keys(Keys.COMMAND, "v")
# 크롬드라이버 셋팅
chrome_service = ChromeService(ChromeDriverManager().install())
chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--window-size=1920,1080')
chrome_options.add_argument('--disable-dev-shm-usage')
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
driver = uc.Chrome(service=chrome_service, options=chrome_options)
# 사용자 아이디 패스워드
user_id = "userid"
user_pw = "XXXXXX"
# 운영체제 정보 가져오기
os_info = platform.system()
driver.get("https://naver.com")
driver.implicitly_wait(10) # 처음에만 셋팅 암묵적 10초 대기
time.sleep(random.randint(3, 5))
driver.maximize_window() # 브라우저 최대 사이즈로
# 로그인 버튼 클릭
driver.find_element(By.XPATH, '//*[@id="account"]/div/a').click()
time.sleep(random.randint(3, 5))
pyperclip.copy(str(user_id))
elem = driver.find_element(By.XPATH, '//*[@id="id"]')
elem.click()
time.sleep(random.randint(1, 2))
paste_key(elem)
time.sleep(random.randint(1, 2))
elem.send_keys(Keys.TAB)
time.sleep(random.randint(1, 2))
pyperclip.copy(str(user_pw))
elem = driver.find_element(By.XPATH, '//*[@id="pw"]')
paste_key(elem)
time.sleep(random.randint(1, 2))
elem.send_keys(Keys.ENTER)
time.sleep(60)
"""
그 외 작업
"""
driver.quit()
* 참조문서
728x90
Comments