diff --git a/send_mail.py b/send_mail.py new file mode 100644 index 0000000..16eef06 --- /dev/null +++ b/send_mail.py @@ -0,0 +1,74 @@ +import requests +from bs4 import BeautifulSoup +import smtplib +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +import time +import logging + +# 配置日志 +logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(message)s") + +# 配置邮件发送函数 +def send_email(subject, body, to_email): + # 邮件服务器配置 + smtp_server = "smtp.lcdd.net" + smtp_port = 587 + from_email = "admin@lcdd.net" + password = "lichao1314" + + # 构建邮件 + msg = MIMEMultipart() + msg["From"] = from_email + msg["To"] = to_email + msg["Subject"] = subject + msg.attach(MIMEText(body, "plain")) + + # 连接到服务器并发送邮件 + try: + with smtplib.SMTP(smtp_server, smtp_port) as server: + server.starttls() + server.login(from_email, password) + server.sendmail(from_email, to_email, msg.as_string()) + logging.info("邮件已发送到 %s", to_email) + except Exception as e: + logging.error("邮件发送失败: %s", e) + +# 配置爬虫任务 +def check_website_for_condition(url, keyword): + try: + response = requests.get(url) + response.raise_for_status() # 确保请求成功 + soup = BeautifulSoup(response.text, "html.parser") + + # 搜索关键词 + if keyword in soup.get_text(): + logging.info("检测到关键词: %s", keyword) + return True + else: + logging.info("关键词 %s 不存在", keyword) + return False + except Exception as e: + logging.error("请求失败: %s", e) + return False + +# 主调度函数 +def monitor_website(): + url = "https://lcdd.net" # 目标网址 + keyword = "React" # 目标关键词 + to_email = "randolphreidhdu@gmail.com" # 收件人邮箱 + + # 监控循环 + while True: + if check_website_for_condition(url, keyword): + subject = "关键词检测通知" + body = f"目标网站 {url} 上检测到关键词 '{keyword}' 出现!" + send_email(subject, body, to_email) + break # 如果检测到条件,发送一次邮件并退出循环 + + # 未检测到条件时,延迟一段时间再次检查 + time.sleep(300) # 每5分钟检查一次 + +# 启动监控 +if __name__ == "__main__": + monitor_website() diff --git a/test.py b/test.py deleted file mode 100644 index e69de29..0000000