TIL_2020년 10월 02일 (금)

1 분 소요

목차

1.오늘 한 일

  1. 자바스크립트 정리 및 TIL 작성
  2. 스파르타코딩클럽 파이썬 추석특강 (2일차)
    • 웹스크래핑 (뉴스 제목, 언론사, URL, 썸네일주소)
    • 아래는 추석 기사를 모아서 저장하는 코드입니다.
     from bs4 import BeautifulSoup
     from selenium import webdriver
     from openpyxl import Workbook
        
     driver = webdriver.Chrome('./chromedriver')
        
     url = "https://search.naver.com/search.naver?where=news&sm=tab_jum&query=추석"
        
     driver.get(url)
     req = driver.page_source
     soup = BeautifulSoup(req, 'html.parser')
        
     articles = soup.select('#main_pack > div.news.mynews.section._prs_nws > ul > li')
        
     wb = Workbook()
     ws1 = wb.active
     ws1.title = "articles"
     ws1.append(["제목", "링크", "신문사","썸네일"])
        
     for article in articles:
         title = article.select_one('dl > dt > a').text
         url = article.select_one('dl > dt > a')['href']
         company = article.select_one('span._sp_each_source').text.split(' ')[0].replace('언론사','')
         thumbnail = article.select_one('div > a > img')['src']
        
         # print(title, url, company, thumbnail)
         ws1.append([title, url, company, thumbnail])
        
     driver.quit()
     wb.save(filename='articles.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 = "daaan0415@gmail.com"
     my_password = "비밀번호자리(개인정보에요)"
        
     # 로그인하기
     s = smtplib.SMTP_SSL('smtp.gmail.com')
     s.login(me, my_password)
        
     # 받는 사람 정보
     emails = ['success415@naver.com', 'daaan0415@gmail.com']
     # you = "daaan0415@gmail.com"
        
     for you in emails:
         # 메일 기본 정보 설정
         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("articles.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.오늘 배운 것과 깨달은 것

  • 이럴 때는 참 쉽게 된다. 안될 때는 참 스크래핑이 안되더니…

3.지금까지 작업물 (사진)

  • 없음

태그:

카테고리:

업데이트:

댓글남기기