Link Search Menu Expand Document
구글, 네이버, 다음 자동 로그인
Table of contents
  1. 구글,네이버,다음 자동로그인
  2. 구글 자동 로그인
    1. 구글 웹 페이지에 접속하는 경우
    2. 구글 로그인 창에 접속하는 경우
  3. 네이버 자동 로그인
    1. pyperclip 이용해서 자동로그인하기
  4. 다음 자동 로그인
    1. 다음 아이디를 통해 로그인하는 경우
    2. 카카오 로그인을 하는 경우
    3. 위 코드로 자동 로그인을 하는 과정에서 ‘로봇이 아닙니다’ 버튼이 생길 경우

구글,네이버,다음 자동로그인

자동로그인 코드를 만들기 위해서는 chromedriver와 selenum이 필요하다. 먼저 chromedriver는 여기에서 본인의 크롬 브라우저에 맞는 버전으로 로컬디스크(c:)에 설치하면 된다. selenum은 !pip install selenium 코드로 파이썬 환경에서 설치하면 된다.

자동 로그인을 하기 위해서는 다음으로 넘어가기 위해 중간 중간 클릭이 필요하다. selenium으로 클릭을 하기 위해서는 XPath 를 알아야 한다. XPath는 개발자 도구에서 클릭하고자 하는 요소를 선택한 후 오른쪽 버튼을 눌러 copy → copy XPath 를 누르면 XPath를 알 수 있다. 그 후 아래 코드를 이용하면 버튼을 자동으로 클릭할 수 있다.

driver.find_element_by_xpath('xpath 복사해온 것').click()

구글 자동 로그인

구글을 자동 로그인하기 위해서는 반드시 2단계 인증을 풀고 진행해야 한다. 2단계 인증이 있는 계정의 경우, 아래 코드로 자동로그인을 할 수 없다. 구글 2단계 인증을 사용 중지 하는 법은 여기에서 확인할 수 있다.

구글 웹 페이지에 접속하는 경우

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome('c:/chromedriver')
url = 'https://www.google.com/'

driver.implicitly_wait(3)

driver.get(url)

google_email = "구글 계정 이메일"  # 본인 이메일 계정을 입력해주세요
google_pw = "구글 계정 비밀번호" # 본인 비밀번호 입력해주세요

driver.find_element_by_xpath('//*[@id="gb_70"]').click()
driver.find_element_by_xpath('//input[@type="email"]').send_keys(google_email)
driver.find_element_by_xpath('//*[@id="identifierNext"]').click()
sleep(3)
driver.find_element_by_xpath('//input[@type="password"]').send_keys(google_pw)
driver.find_element_by_xpath('//*[@id="passwordNext"]').click()
sleep(2)

구글 로그인 창에 접속하는 경우

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

driver = webdriver.Chrome('C:/chromedriver')
driver.implicitly_wait(3)
driver.get('https://accounts.google.com/signin/v2/identifier?hl=ko&passive=true&continue=https%3A%2F%2Fwww.google.com%2F&ec=GAZAAQ&flowName=GlifWebSignIn&flowEntry=ServiceLogin')

driver.find_element_by_id('identifierId').send_keys('구글 계정 이메일') # 본인 이메일 계정을 입력해주세요
driver.find_element_by_xpath('//*[@id="identifierNext"]/div/button/div[2]').click()

time.sleep(1)

driver.find_element_by_name('password').send_keys('구글 계정 비밀번호') # 본인 비밀번호 입력해주세요
driver.find_element_by_xpath('//*[@id="passwordNext"]/div/button').send_keys(Keys.ENTER)

# driver.close()

네이버 자동 로그인

네이버 자동 로그인은 구글과 동일하게 진행할 경우, 보안을 위해서 자동입력방지 에러가 발생한다. 이를 해결하기 위해서는 자바 스크립트를 이용하면 된다.

from selenium import webdriver

driver = webdriver.Chrome('c:/chromedriver')
url = 'https://www.naver.com/'
driver.get(url)

driver.find_element_by_xpath('//*[@id="account"]/a').click()

naver_id = "네이버 아이디"  # 본인 아이디를 입력해주세요
naver_pw = "네이버 비밀번호" # 본인 비밀번호 입력해주세요

# 일반적으로 사람이 작성하는 형태 => 네이버 보안에서 막힌다
# driver.find_element_by_id("id").send_keys(naver_id)
# driver.find_element_by_id("pw").send_keys(naver_pw)

# 네이버 보안에서 자바 스크립트를 통해서 보안을 뚫습니다 / 해킹이 될 수 있는 요소
driver.execute_script("document.getElementsByName('id')[0].value=\'"+naver_id+"\'")
driver.execute_script("document.getElementsByName('pw')[0].value=\'"+naver_pw+"\'")

driver.find_element_by_xpath('//*[@id="log.login"]').click()

pyperclip 이용해서 자동로그인하기

pyperclip은 복사, 붙여넣기 클립보드 기능 사용을 위한 모듈이다. pyperclip을 사용하면 텍스트를 복사하고, 복사한 테스트를 붙여넣을 수 있기 때문에 아이디와 비밀번호를 코드에 직접 적지 않고, 따로 input으로 받아서 코드를 실행할 때마다 적을 수 있다.

# pyperclip 설치하기
!pip install pyperclip
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

# from bs4 import BeautifulSoup
import pyperclip
import time

def clipboard_input(self, user_xpath, user_input):
    pyperclip.copy(user_input) # input을 클립보드로 복사
    driver.find_element_by_xpath(user_xpath).click() # element focus 설정
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform() # ctrl + v 전달

driver=webdriver.Chrome('C:\chromedriver.exe')

driver.get("https://nid.naver.com/nidlogin.login")
IDxPath='//*[@id="id"]'
PasswordxPath='//*[@id="pw"]'

# input으로 따로 입력을 받을 예정이므로 미리 적지 않아도 됩니다
ID=input("네이버 아이디: ")
Password=input("네이버 비밀번호: ")

clipboard_input(driver, IDxPath, ID)
clipboard_input(driver,PasswordxPath,Password)
driver.find_element_by_xpath('//*[@value="로그인"]').click()

다음 자동 로그인

다음 아이디를 통해 로그인하는 경우

from selenium import webdriver
from time import sleep

driver = webdriver.Chrome('c:/chromedriver')
url = 'https://www.daum.net/'

driver.implicitly_wait(3)

driver.get(url)

daum_id = "다음 아이디" # 본인 아이디를 입력해주세요
daum_pw = "다음 비밀번호" # 본인 비밀번호를 입력해주세요

driver.find_element_by_xpath('//*[@id="inner_login"]/a[1]').click()
sleep(3)
driver.find_element_by_xpath('//input[@type="email"]').send_keys(daum_id)
driver.find_element_by_xpath('//input[@type="password"]').send_keys(daum_pw)
sleep(3)
driver.find_element_by_xpath('//*[@id="loginBtn"]').click()

카카오 로그인을 하는 경우

from selenium import webdriver

driver = webdriver.Chrome('c:/chromedriver.exe')
url = 'https://accounts.kakao.com/login?continue=https%3A%2F%2Flogins.daum.net%2Faccounts%2Fksso.do%3Frescue%3Dtrue%26url%3Dhttps%253A%252F%252Fwww.daum.net%252F'
driver.get(url)

kakao_id = input('카카오 아이디를 입력하세요 : ')
kakao_pw = input('카카오 비밀번호를 입력하세요 : ')

# 다음 보안에서 자바 스크립트를 통해서 보안을 뚫습니다. / 해킹이 될 수 있는 요소
# 이 코드가 동작하는 조건은 리캡차가 동작하지 않는 홈페이지로 올라 왔을 때는 이 코드로 됨

driver.execute_script("document.getElementsByName('email')[0].value=\'"+kakao_id+"\'")
driver.execute_script("document.getElementsByName('password')[0].value=\'"+kakao_pw+"\'")

driver.find_element_by_xpath('//*[@id="login-form"]/fieldset/div[8]/button[1]').click()

위 코드로 자동 로그인을 하는 과정에서 ‘로봇이 아닙니다’ 버튼이 생길 경우

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys

# from bs4 import BeautifulSoup
import pyperclip
import time

def clipboard_input(self, user_xpath, user_input):
    pyperclip.copy(user_input) # input을 클립보드로 복사
    driver.find_element_by_xpath(user_xpath).click() # element focus 설정
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform() # ctrl + v 전달

driver=webdriver.Chrome('C:\chromedriver.exe')

driver.get("https://accounts.kakao.com/login?continue=https%3A%2F%2Flogins.daum.net%2Faccounts%2Fksso.do%3Frescue%3Dtrue%26url%3Dhttps%253A%252F%252Fwww.daum.net%252F")
IDxPath='//*[@id="id_email_2"]'
PasswordxPath='//*[@id="id_password_3"]'

# input으로 따로 입력을 받을 예정이므로 미리 적지 않아도 됩니다
ID=input("카카오 아이디: ")
Password=input("카카오 비밀번호: ")

clipboard_input(driver, IDxPath, ID)
clipboard_input(driver,PasswordxPath,Password)
driver.find_element_by_xpath('//*[@id="login-form"]/fieldset/div[8]/button[1]').click()

Page last modified: 2020-11-29 22:11:80.