본문 바로가기

It인터넷

파이썬,selenium으로 네이버 로그인 자동화 하기 -캡챠 해결법

파이썬

selenium 라이브러리를 사용하면

웹 크롤링부터 자동화까지 하실 수 있습니다.

 

먼저 chromedriver.exe 다운 받아야합니다.

https://sites.google.com/a/chromium.org/chromedriver/downloads

 

Downloads - ChromeDriver - WebDriver for Chrome

WebDriver for Chrome

sites.google.com

 

본인 컴퓨터에 크롬 버전을 확인하기고 맞는 버전을 다운 받아 주시면 됩니다.

크롬 주소창에 chrome://settings/help

를 치시면 버전 정보가 나옵니다.

 

cmd 콘솔 창을 키고

파이썬(3.xx)이 설치되었있다는 가정하에

 

1
2
pip install selenium pyperclip
 
cs

 

위의 명령어를 쳐줍니다.

 

그리고 index.py 파일을 만듭니다.

 

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
31
32
33
34
35
36
37
38
import sys
import datetime
import random
import pyperclip
import time
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
html =None
soup =None
driver =None
def copy_input(xpath, input):
    pyperclip.copy(input)
    driver.find_element_by_xpath(xpath).click()
    ActionChains(driver).key_down(Keys.CONTROL).send_keys('v').key_up(Keys.CONTROL).perform()
    time.sleep(1)
 
def naver_login():
    global html
    global soup
    global driver
    id = '본인 네이버 아이디'
    pw = '본인 네이버 비번'
    driver = webdriver.Chrome('다운 받은 chromedriver.exe 절대 경로');
    driver.implicitly_wait(3)
    driver.get('https://nid.naver.com/nidlogin.login')
    copy_input('//*[@id="id"]', id)
    time.sleep(1)
    copy_input('//*[@id="pw"]', pw)
    time.sleep(1)
    driver.find_element_by_xpath('//*[@id="frmNIDLogin"]/fieldset/input').click()
    driver.implicitly_wait(25) #처음 실행시 25초 안에 네이버 아이디 비번 캡챠를 입력해야함. 시간 바꿀수 있음
    driver.get('본인 네이버 블로그 주소')
    driver.implicitly_wait(2)
    driver.get('본인 네이버 블로그 주소/postwrite')
 
if __name__=="__main__":
    naver_login();
cs

일단 아래와 같이 콘솔창에서  실행 해봅니다.

1
python index.py
cs

 

실행 하시면 자동으로 아이디와 비밀번호가 적어지고

로그인 버튼이 눌립니다.

 

하지만 로그인과 캡챠가 같이 뜰때 

 

수동으로 처음 한번만 캡챠랑 같이 적으시고 로그인 버튼 누르면 됩니다.

 

그다음 부터 실행시 캡챠가 뜨지않고 네이버 로그인이 되서

네이버 블로그 글 작성창 까지 갑니다.

 

이상 스타트 제로입니다.