스파르타 코딩

[스파르타 코딩] 파이썬 혼자 놀기 패키지 2주차 / 셀레니움

양상추상츄 2021. 9. 14. 18:38

#1 뉴스기사 웹스크리핑 후에 엑셀로 저장하여 첨부메일 보내기

from bs4 import BeautifulSoup
from selenium import webdriver

from openpyxl import Workbook

driver = webdriver.Chrome(r"C:\Users\bum\Desktop\sparta\chromedriver.exe")
url = "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=추석"
driver.get(url)
req = driver.page_source # html 파일받기
soup = BeautifulSoup(req, 'html.parser') #html에서 필요한 정보만 가져오기

wb = Workbook()
ws1 = wb.active
ws1.title = "articles"
ws1.append(["제목", "링크", "신문사", "썸네일"])
articles = soup.select('#main_pack > section.sc_new.sp_nnews._prs_nws > div > div.group_news > ul > li')

for article in articles:
    a_tag = article.select_one('a.news_tit')
    title = a_tag.text
    url = a_tag['href']
    comp = article.select_one('a.info.press').text.split(' ')[0].replace('언론사','')
    thumb = article.select_one('a.dsc_thumb > img.thumb.api_get')['src']
    ws1.append([title, url, comp, thumb])

driver.quit()
wb.save(filename='추석기사.xlsx')



########### 메일보내기 #######################

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email.mime.text import MIMEText
from email import encoders

# 보내는 사람 정보
me = "" #내 메일주소
my_password = "" #비밀번호

# 로그인하기
s = smtplib.SMTP_SSL('smtp.gmail.com') #건들면 안됨
s.login(me, my_password)

# 받는 사람 정보
email_list = ["", ""]

for you in email_list:
    # 메일 기본 정보 설정
    msg = MIMEMultipart('alternative')
    msg['Subject'] = "제목"
    msg['From'] = me
    msg['To'] = you

    # 메일 내용 쓰기
    content = "메일 내용"
    part2 = MIMEText(content, 'plain')
    msg.attach(part2)

    part = MIMEBase('application', "octet-stream")
    with open("추석기사.xlsx", 'rb') as file:
        part.set_payload(file.read())
    encoders.encode_base64(part)
    part.add_header('Content-Disposition', "attachment", filename="추석기사.xlsx")
    msg.attach(part)

    # 메일 보내기
    s.sendmail(me, you, msg.as_string())

# 다 끝나고 닫기
s.quit()


#2 주의사항

 

smtplib를 잘몰라서 오류발생시 아래 문서를 꼭 확인하여 작성해야할 것 같다.

(구글 이메일 보안 해제 관련한 오류 발생)

 

스파르타온라인_파이썬혼자놀기패키지_2일차.pdf
0.48MB