
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
이미지가 안들어갑니다.

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time
from smtplib import SMTP_SSL
from email.message import EmailMessage
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
# Chrome 옵션 설정
chrome_options = Options()
chrome_options.add_experimental_option("detach", True) # 브라우저 자동 종료 방지
chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 불필요한 로그 제거
driver = webdriver.Chrome(options=chrome_options)
# 웹 사이트 열기
driver.get('https://news.google.com')
time.sleep(2)
driver.maximize_window() # 창 최대화
time.sleep(2)
# Ax4B8 검색창 가져올 때 사용할 Class
# JtKRv 뉴스 목록 가져올 때 사용할 Class
SEARCH_KEYWORD = '전기자동차'
try:
# 올바른 방식으로 검색창 찾기
search_bar = driver.find_element(By.CLASS_NAME, 'Ax4B8') # 첫 번째 클래스명만 사용
search_bar.click()
search_bar.send_keys(SEARCH_KEYWORD)
search_bar.send_keys(Keys.ENTER)
time.sleep(4)
except Exception as e:
print(f"에러 발생: {e}")
# 스크롤
before_h = driver.execute_script("return window.scrollY")
while True:
driver.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END)
time.sleep(1)
after_h = driver.execute_script("return window.scrollY")
if after_h == before_h:
break
before_h = after_h
data_list = []
article_list = driver.find_elements(By.CSS_SELECTOR, '.JtKRv')
for article in article_list:
title = article.text
link = article.get_attribute('href')
data_dict = {'title': title, 'link': link}
data_list.append(data_dict)
print(title)
print(data_list)
# 이메일 메시지 설정
msg = MIMEMultipart()
msg['Subject'] = f'오늘의 {SEARCH_KEYWORD} 뉴스'
msg['From'] = 'djatjddyd21@gmail.com'
msg['To'] = 'djatjddyd21@gmail.com'
# 이메일 본문 작성
email_body = ""
email_body += "<br>"
email_body += f"<h2>오늘의 {SEARCH_KEYWORD} 뉴스</h2>"
email_body += "<br>"
email_body += "<div><img scr='https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTtTYaJdFDVJkRiFeZ21BeqpItAwXzUwDb4intgyXFlX-dpKHRQd08413jxMGyJcZtnc5U&usqp=CAU'></div>"
for i in range(len(data_list)):
title = data_list[i]['title']
link = data_list[i]['link']
email_body += f"<p><a href:'{link}'>{title}</a></p>"
msg.attach(MIMEText(email_body, "html"))
# SMTP 설정 및 이메일 전송
with SMTP_SSL('smtp.gmail.com', 465) as smtp:
smtp.login('djatjddyd21@gmail.com', 'nvwn ahkl uavs klzy')
smtp.send_message(msg)
print("성공!")
# 브라우저 종료
driver.quit()
