2020/05/04 - [개발자/Python] - Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 (Selenium O)

 

Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 (Selenium O)

2020/04/22 - [개발자/Python] - Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 Python (파이썬) 웹 크롤링 기초 - Spark 퀴즈 정보 긁어오기 1. 페이지 저장하기 import requests, bs4 # 비슷한 애..

greendreamtrre.tistory.com

에서 만든 'QuizScrap.csv'파일을 메일로 발송하는 것을 연습합니다.

 

1. 지메일 로그인 하기

# 3. 만들어낸 데이터를 이메일로 발송하기.

# Step 1. 지메일 로그인 하기.
# SMTP 프로토콜 로드
import smtplib
import getpass
import pickle    # 파이썬에 자료를 저장하고 내보내고 하게 해줌.

# 이메일을 간단하게 보낼수 있는 라이브러리 로드
from email.message import EmailMessage

# import smtplib를 활용하는 부분

# GMAIL 메일 설정
smtp_gmail = smtplib.SMTP('smtp.gmail.com', 587)

# 서버 연결을 설정하는 단계
smtp_gmail.ehlo()
 
# 연결을 암호화
smtp_gmail.starttls()

#로그인 아이디 / 앱 비밀번호 (설정 -> 보안 -> 앱 비밀번호)
myid = getpass.getpass()    # 이메일 아이디를 넣는다.
mypw = getpass.getpass()    # 앱 비밀번호를 넣는다.

pickle.dump(myid, open('id.pickle', 'wb'))    # 내 이메일 ID를 id.pickle로 저장.
pickle.dump(mypw, open('pw.pickle', 'wb'))    # 내 앱 비밀번호를 pw.pickle로 저장.

# 이후 위에 로그인 아이디 / 앱 비밀번호는 주석처리하고 pickle로 불러와 사용하기만 하면 된다.
userid = pickle.load(open('id.pickle', 'rb'))
userpw = pickle.load(open('pw.pickle', 'rb'))

# smtp를 이용해 gmail에 로그인
smtp_gmail.login(userid, userpw)

# Step 2. 메일을 보낼 주소 정보 가져와 리스트로 만들기.
# email 보낼 주소가 저장된 csv 파일 불러오기
emaillist = pd.read_csv("./emailaddress.csv", encoding='utf-8')
emaillist

# 이메일 주소정보 리스트 변환
to = emaillist['이메일'].tolist()    # 위 emaillist는 데이터프레임이다. '이메일' 컬럼의 값들을 리스트로 만든다.
to

 

2. 메일 작성하기 (파일 첨부 포함)

# Step 3. 메일 작성하기.
# from email.message import EmailMessage 를 활용하는 부분
# EmailMessage 모듈의 별칭을 msg로 이름을 지정.
msg = EmailMessage()

# 제목 입력
msg['Subject']="퀴즈 정보"
 
# 내용 입력
msg.set_content("퀴즈정보")
 
# 보내는 사람 (위에서 이메일 정보는 내가 로그인 하기 위해 이메일 주소를 적은 것이고, 여기서는 발송을 위해 발신인의 이메일을 적는 것이다.)
msg['From']='xxx@gmail.com'
 
# 받는 사람
msg['To'] = ",".join(to)    # 위에서 리스트로 만든 수신인 이메일 목록이 담긴 리스트. 수신인을 ","로 구분하겠다.

# 첨부파일 추가
file = 'QuizScrap.csv'
fp = open(file,'rb')     # read binary. open() : 파일을 실제로 읽어오는건 아님. 파일을 선택하는 것.
fp

# 결과 : <_io.BufferedReader name='QuizScrap.csv'>

file_data = fp.read()    # read() : 파일을 읽어옴.
file_data

# 결과 : b'spark \xed\x80\xb4\xec\xa6\x88 .... \xeb\xb6\x84\xec\x84\x9d2 ,https://forms.gle/Gxb4y6LfVYiaLu4M7\n'

# 파일을 첨부한다. (파일에 대한 옵션)
msg.add_attachment(file_data,
                   maintype = 'text',
                   subtype = 'plain',
                   filename = file)

# 메일 전송
smtp_gmail.send_message(msg)
smtp_gmail.close()

+ Recent posts