Python实现qq邮箱天气提醒推送

Python实现每一小时进行天气查询,若有雨,发送QQ邮箱提醒功能

import smtplib
from email.mime.text import MIMEText
import requests
from lxml import etree
from apscheduler.schedulers.blocking import BlockingScheduler

def send_email():
    url = f'https://www.tianqishi.com/leling.html'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36',
    }
    res_data = requests.get(url=url, headers=headers)
    tree = etree.HTML(res_data.text)
    tianqijianbao = tree.xpath('//div[@class="jdjianjie"]//p')[0]
    he = tree.xpath('(//div[@class="air-quality pd0"])[1]//font')
    suggest = tree.xpath('(//div[@class="air-quality pd0"])[2]//font')
    # 设置邮箱账号
    account = "你的邮箱@qq.com"
    # 设置邮箱授权码
    token = "qq的smtp代码 "
    # 实例化smtp对象,设置邮箱服务器,端口
    smtp = smtplib.SMTP_SSL('smtp.qq.com', 465)

    # 登录qq邮箱
    smtp.login(account, token)
    # 设置要发送的文本
    content = tianqijianbao.text+'\n'+f"【健康影响】{he[0].text}\n【建议措施】{suggest[0].text}"
    # 创建邮件对象,plain是文本类型
    email_content = MIMEText(content, 'plain', 'utf-8')

    # 设置发送者信息
    email_content['From'] = '你的邮箱@qq.com'
    # 设置接受者信息
    email_content['To'] = '自定义昵称'
    # 设置邮件标题
    email_content['Subject'] = '来自他的一封信,有雨,风紧,撤乎'

    # 有雨发送邮件
    if "雨" in content:
        smtp.sendmail(account, '她的邮箱@qq.com', email_content.as_string())
    # 关闭邮箱服务
    smtp.quit()


if __name__ == '__main__':
    # 创建调度器
    scheduler = BlockingScheduler()

    # 添加任务,每5秒执行一次
    scheduler.add_job(send_email, 'interval', seconds=3600)

    # 启动调度器
    scheduler.start()

相关推荐

  1. Python实现qq邮箱天气提醒

    2024-04-30 11:34:01       31 阅读
  2. Spring Boot中实现邮件

    2024-04-30 11:34:01       55 阅读
  3. WebSocket实现数据的实时

    2024-04-30 11:34:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-30 11:34:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-30 11:34:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-30 11:34:01       82 阅读
  4. Python语言-面向对象

    2024-04-30 11:34:01       91 阅读

热门阅读

  1. 数据库学习之常见的一些SQL命令

    2024-04-30 11:34:01       33 阅读
  2. vue3中的reactive、readonly和shallowReactive

    2024-04-30 11:34:01       28 阅读
  3. 在 Linux 系统中,有多种方法可以查看系统信息

    2024-04-30 11:34:01       33 阅读
  4. ESLint 和 Prettier 各自的作用及区别

    2024-04-30 11:34:01       34 阅读
  5. AtCoder Beginner Contest 351 A-F题解

    2024-04-30 11:34:01       26 阅读