회사에서 파이썬 자동화하기 교육을 듣다 문득 자동화 툴을 만들어 보고 싶어서 뭐를 만들어 볼까 하다 요즘 메일 볼일이 많아져서 네이버 메일 크롤링 해서 엑셀에 저장하기를 시도 해보려 한다.
우선 대충 큰 그림을 그리자면
실행파일 클릭 시
1. 네이버에 자동 로그인
2. 메일에서 메일 발신자와 메일 제목 뽑기
3. 뽑은 메일 내용을 엑셀에 저장하기
이렇게 할 예정이다.
1. 네이버에 자동 로그인
1. 준비
우선 자동 로그인을 위해 필요한 모듈인 selenium과 pyperclip 모듈을 설치한 후 import 해준다.
pip install selenium
pip install pyperclip
그 후 webdriver를 설치 해준다.
chrome에서 "chrome://version"을 하면
"Chrome:" 하면서 chrome 버전이 나온다.
그 후 https://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가 뜨기 때문에 이걸 우회하기 위하여 복사 붙여넣기를 이용한다.
최종 정리 본
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/')
다음과 같이 코드 작성 후 실행 시키면
다음과 같이 동작하는 것을 확인 할 수 있다.
'python?' 카테고리의 다른 글
네이버 메일 크롤링하기 -2. 메일에서 메일 발신자와 메일 제목 뽑기 (0) | 2022.09.20 |
---|---|
파이참에서 스크래피(scrapy) 사용하기 (0) | 2019.12.04 |
파이썬으로 네이버 검색기 사용하기 (0) | 2019.12.03 |
python으로 엑셀파일 열고 쓰기(with pandas) (2) | 2019.10.19 |
파이썬으로 엑셀 다루기(完) (2) | 2019.10.07 |