读取天气信息,并通过QQ邮箱发送至指定邮箱

时间:2024-10-01 17:04:26
from email.mime.text import MIMEText
from email.header import Header
from smtplib import SMTP_SSL import urllib.request
import time def get_weather_msg():
page = urllib.request.urlopen("http://www.weather.com.cn/weather/101200101.shtml")
text = page.read().decode("utf8")
#print(text)
startNum = text.find("(今天)</h1>")
endNum = text.find("(明天)</h1>")
text = text[startNum-3:endNum]
#print(text)
date = text[0:3]
#print("**************")
startNum = text.find("class=\"wea\">")
endNum = text.find("<p class=\"tem\">")
weather = text[startNum+12:endNum-5] startNum = text.find("<p class=\"tem\">")
endNum = text.find("℃</i>")
tempreture = text[endNum-2:endNum] message = ("今天" + date + "\n" + "天气:"+ weather+ "\n" + "温度:"+ tempreture +"℃" + "\n")
tempreture = float(tempreture)
if tempreture > 30:
message = message + "高温"
elif tempreture < 10:
message = message + "低温"
else:
message = message + "温度适中" #print("今天" + date)
#print("天气:"+ weather)
#print("温度:"+ tempreture +"℃")
return (message) def send_weather_by_mail(content):
#qq邮箱smtp服务器
host_server = 'smtp.qq.com'
#sender_qq为发件人的qq号码
sender_qq = '150xxxxx'
#pwd为qq邮箱的授权码
pwd = 'Lxxxxx'
#发件人的邮箱
sender_qq_mail = '150xxxxx@qq.com'
#收件人邮箱
receiver = 'xxxxx@xxxx.com'
#邮件的正文内容
mail_content = content
#邮件标题
mail_title = 'xxx的邮件' #ssl登录
smtp = SMTP_SSL(host_server)
#set_debuglevel()是用来调试的。参数值为1表示开启调试模式,参数值为0关闭调试模式
smtp.set_debuglevel(0)
smtp.ehlo(host_server)
smtp.login(sender_qq, pwd) msg = MIMEText(mail_content, "plain", 'utf-8')
msg["Subject"] = Header(mail_title, 'utf-8')
msg["From"] = sender_qq_mail
msg["To"] = receiver
smtp.sendmail(sender_qq_mail, receiver, msg.as_string())
smtp.quit() checkTime = 0
while 1:
checkTime += 1
send_weather_by_mail(get_weather_msg())
print(">>>"+str(checkTime)+">>>")
time.sleep(10)