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 = smtplib.SMTP_SSL('smtp.qq.com', 465)
smtp.login(account, token)
content = tianqijianbao.text+'\n'+f"【健康影响】{he[0].text}\n【建议措施】{suggest[0].text}"
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()
scheduler.add_job(send_email, 'interval', seconds=3600)
scheduler.start()