파이썬, 셀레니움을 이용한
네이버 메일 자동화 보내기 입니다.
예제는 스타트 코딩, 파이썬 크롤링 강의를 들으면서 공부한 내용입니다.
네이버 메일 자동화 보내기 코드
- 본문인 body 부분이 iframe 태그에 쌓여있기 때문에 iframe 태그 내부에 들어가서 본문을 작성 후 다시 iframe 나가는 별도의 코드가 필요
#셀레니움 기본설정
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from webdriver_manager.chrome import ChromeDriverManager #크롬 드라이버 자동 업데이트
from selenium.webdriver.common.by import By
#자동입력 방지 문자 알림창 방지 위해 3가지 import
import time
import pyautogui
import pyperclip
chrome_options = Options() #브라우저 꺼짐 방지
chrome_options.add_experimental_option("detach", True)
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) #불필요한 에러 메세지 삭제
service = Service(executable_path = ChromeDriverManager().install()) #크롬 드라이버 최신 버전 자동 설치 후 서비스 만들기
driver = webdriver.Chrome(service = service, options = chrome_options)
driver.implicitly_wait(5) #사이트 로딩시간 5초 기다림
driver.maximize_window() #화면 최대화(꽉차게)
driver.get("https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com") #웹페이지 해당 주소 이동
id = driver.find_element(By.CSS_SELECTOR, '#id') #아이디 입력창
id.click()
#id.send_keys('아이디')
pyperclip.copy('아이디')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)
pw = driver.find_element(By.CSS_SELECTOR, '#pw') #아이디 입력창
pw.click()
#pw.send_keys('비밀번호')
pyperclip.copy('비밀번호')
pyautogui.hotkey('ctrl', 'v')
time.sleep(2)
driver.find_element(By.CSS_SELECTOR, '.btn_login').click()
#메일함 이동
driver.get("https://mail.naver.com/") #웹페이지 해당 주소 이동
time.sleep(2)
#메일 쓰기 버튼 클릭
write_btn = driver.find_element(By.CSS_SELECTOR, '#nav_snb > div.btn_workset > a.btn_quickwrite._c1\(mfCore\|popupWrite\|new\)._ccr\(lfw\.write\)._stopDefault')
write_btn.click()
time.sleep(2)
#받은 사람
driver.find_element(By.CSS_SELECTOR, '#toInput').send_keys('woorim0ju@naver.com')
time.sleep(2)
#제목
driver.find_element(By.CSS_SELECTOR, '#subject').send_keys('자동화 메일')
time.sleep(2)
#iframe 안으로 들어가기
driver.switch_to.frame('se2_iframe') # #se2_iframe 아님
#본문
driver.find_element(By.CSS_SELECTOR, 'body').send_keys('셀레니움으로 이메일 보내기')
time.sleep(2)
#iframe 밖으로 나가기
driver.switch_to.default_content()
#보내기 버튼 클릭
driver.find_element(By.CSS_SELECTOR, '#sendBtn').click()
구현 화면
반응형
'개발 > Python' 카테고리의 다른 글
[py] 크롤링 데이터 엑셀에 저장 (0) | 2022.10.05 |
---|---|
[py] request 이용하여 웹 크롤링 예제 (0) | 2022.10.03 |
[py] 이미지 사이즈 줄이기 (1) | 2022.09.30 |
[py] 파이썬 랜덤 이미지 생성 (1) | 2022.09.30 |
[py] 파일 및 폴더 정리하기 (0) | 2022.09.30 |
댓글