네이버 메일 크롤링하기 -1. 네이버 로그인 하기

반응형

회사에서 파이썬 자동화하기 교육을 듣다 문득 자동화 툴을 만들어 보고 싶어서 뭐를 만들어 볼까 하다 요즘 메일 볼일이 많아져서 네이버 메일 크롤링 해서 엑셀에 저장하기를 시도 해보려 한다.

우선 대충 큰 그림을 그리자면

실행파일 클릭 시

1. 네이버에 자동 로그인

2. 메일에서 메일 발신자와 메일 제목 뽑기

3. 뽑은 메일 내용을 엑셀에 저장하기

이렇게 할 예정이다.

1. 네이버에 자동 로그인

1. 준비

우선 자동 로그인을 위해 필요한 모듈인 selenium과 pyperclip 모듈을 설치한 후 import 해준다.

pip install selenium

pip install pyperclip

그 후 webdriver를 설치 해준다.

chrome에서 "chrome://version"을 하면

"Chrome:" 하면서 chrome 버전이 나온다.

그 후 https://chromedriver.chromium.org/

 

ChromeDriver - WebDriver for Chrome

WebDriver is an open source tool for automated testing of webapps across many browsers. It provides capabilities for navigating to web pages, user input, JavaScript execution, and more. ChromeDriver is a standalone server that implements the W3C WebDriver

chromedriver.chromium.org

에서 본인 버전에 맞는 webdriver를 설치 / 압축 해제를 한다.

그 후 하기와 같이 import를 해준다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pyperclip

2. 로그인 창 띄우기 

userid='[네이버 아이디]'
userpw='[네이버 패스워드]'

우선 자동 로그인을 위해 네이버 id와 패스워드를 하드코딩 해준다.

driver = webdriver.Chrome(executable_path='[웹 드라이버 설치 위치]')
driver.implicitly_wait(3)

driver.get('https://nid.naver.com/nidlogin.login')

1. 다음으로 webdriver를 실행 시키는데 이 때 path 값에는 exe 실행 파일 경로까지 넣어야 한다. 또한 '\' 가 아니라 '/'로 경로를 작성해야한다.

2.  3초간 기다리는데 암묵적으로 웹 자원 로드를 위해 3초를 기다린다고 한다.

3. 네이버 로그인을 위해 네이버 로그인 페이지에 접근을 한다.

3. 로그인 창 띄우기

driver.find_element(By.NAME,'id').click()
pyperclip.copy(userid)
driver.find_element(By.NAME,'id').send_keys(Keys.CONTROL,'v')
                    
driver.find_element(By.NAME,'pw').click()
pyperclip.copy(userpw)
driver.find_element(By.NAME,'pw').send_keys(Keys.CONTROL,'v')
driver.find_element(By.XPATH,'//*[@id="log.login"]').click()
driver.get('https://mail.naver.com/')

1. 로그인 페이지에서 아이디 입력창 클릭

2. 위에 적어놓은 '내 아이디' 값 복사

3. 클릭한 아이디 입력창에 복사한 값 붙여 넣기

4. 로그인 페이지에서 패스워드 입력창 클릭

5. 위에 적어놓은 '내 패스워드' 값 복사

6. 클릭한 패스워드 입력창에 복사한 값 붙여 넣기

7. 로그인 버튼 클릭

8. 네이버 메일 접속

※ 로그인 시 아이디를 직접 입력하지 않고 복사하는 이유는 직접 입력 시 CAPTCHA가 뜨기 때문에 이걸 우회하기 위하여 복사 붙여넣기를 이용한다.

(출처 : https://blog.naver.com/PostView.nhn?blogId=jhl0826&logNo=221981994015&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search) 

 

나의 첫 파이썬 웹 크롤링 #1 (네이버 메일 제목 가져오기)

‘코딩하는 공익’이라는 이름으로 브런치에서 글을 쓰시는 분이 있다. 안동에서 공익으로 근무하시던 분이...

blog.naver.com

최종 정리 본

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pyperclip

userid='[네이버 아이디]'
userpw='[네이버 패스워드]'

driver = webdriver.Chrome(executable_path='[웹 드라이버 설치 위치]')
driver.implicitly_wait(3)

driver.get('https://nid.naver.com/nidlogin.login')

driver.find_element(By.NAME,'id').click()
pyperclip.copy(userid)
driver.find_element(By.NAME,'id').send_keys(Keys.CONTROL,'v')
                    
driver.find_element(By.NAME,'pw').click()
pyperclip.copy(userpw)
driver.find_element(By.NAME,'pw').send_keys(Keys.CONTROL,'v')
driver.find_element(By.XPATH,'//*[@id="log.login"]').click()
driver.get('https://mail.naver.com/')

다음과 같이 코드 작성 후 실행 시키면

다음과 같이 동작하는 것을 확인 할 수 있다.

반응형