본문으로 건너뛰기
실습하기

위키피디아에서 조사한 데이터를 이메일로 보내기

이번 수업에서는 웹 크롤링으로 수집한 역사적 사건에 대한 날짜 정보 CSV 파일을 이메일로 첨부해 전송하는 방법을 알아보겠습니다.


1. 필요한 라이브러리 불러오기 및 파일 다운로드

  • email, smtplib: 이메일을 생성하고 전송하기 위한 라이브러리입니다.

  • io: 컴퓨터의 메모리를 활용해 데이터를 처리합니다.


2. CSV 파일 메모리에 저장

CSV 파일을 컴퓨터 메모리에 저장
# CSV 형식으로 메모리에 저장
csv_buffer = io.StringIO()

# CSV 파일로 저장
df[['역사적사건', '날짜']].to_csv(csv_buffer, index=False)

# 메모리 포인터를 처음으로 되돌림
csv_buffer.seek(0)

io.StringIO 객체를 사용해 데이터를 메모리에 저장한 후, CSV 파일로 변환합니다.

이 CSV 파일에는 사건과 날짜 정보가 포함됩니다.


3. 이메일 작성 및 전송

이메일 작성 및 전송
# 이메일 본문 생성
def create_email_body():
return """
<html>
<body>
<h1>역사적 사건 날짜 정보 조사</h1>
<p>안녕하세요, 코드프렌즈입니다.</p>
<p>첨부된 CSV 파일에서 역사적 사건과 날짜 정보를 확인해 보세요.</p>
</body>
</html>
"""

# 이메일 전송 함수
def send_email(to_email, subject, body, attachment_data, attachment_name):
msg = MIMEMultipart()
msg['Subject'] = subject
...(중략)...

# 이메일 발송
send_email(receiver_email, "[코드프렌즈] 역사적 사건 날짜 정보 조사", create_email_body(), csv_buffer, 'historical_events_dates.csv')

이메일 본문을 작성하고, CSV 파일을 첨부하여 smtplib을 통해 이메일을 발송합니다.


이렇게 웹 크롤링과 이메일 전송을 결합하여 데이터를 수집하고 전달하는 프로그램을 만들면, 데이터 수집부터 전달까지 매끄럽게 자동화할 수 있습니다.

실습 코드와 엑셀 파일을 내 업무에 맞게 수정하면, 실무에 바로 적용할 수 있는 유용한 프로그램을 직접 만들 수 있습니다 🙂

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!