Py天气爬虫+邮件发送
天气预报+图片

很久以前写的python天气预报+邮件发送,API调用的和风天气.
# -*- coding: utf-8 -*-
import urllib.request,urllib.error,urllib.parse, json
import os
import time
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
import imp
my_sender='hk_snow@yeah.net'
my_user='hk_snow@yeah.net'
#调用和风天气的API
url = 'https://free-api.heweather.com/x3/weather?cityid=CN101051303&key=90fd63b92ea24a8bac08f800a7a0e2ff'
req = urllib.request.Request(url)
resp = urllib.request.urlopen(req).read()
#将JSON转化为Python的数据结构
json_data = json.loads(resp)
data = json_data['HeWeather data service 3.0'][0]
#获取PM2.5的值
pm25 = data['aqi']['city']['pm25']
#获取当前时间
timetxt=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
#获取空气质量
air_quality = data['aqi']['city']['qlty']
#获取城市
city = data['basic']['city']
#获取现在的天气、温度、体感温度、风向、风力等级
now_weather = data['now']['cond']['txt']
now_tmp = data['now']['tmp']
now_fl = data['now']['fl']
now_wind_dir = data['now']['wind']['dir']
now_wind_sc = data['now']['wind']['sc']
#今天的天气
today = data['daily_forecast'][0]
weather_day = today['cond']['txt_d']
weather_night = today['cond']['txt_n']
tmp_high = today['tmp']['max']
tmp_low = today['tmp']['min']
wind_dir = today['wind']['dir']
wind_sc = today['wind']['sc']
#天气建议
#舒适度
comf = data['suggestion']['comf']['brf']
comf_txt = data['suggestion']['comf']['txt']
#流感指数
flu = data['suggestion']['flu']['brf']
flu_txt = data['suggestion']['flu']['txt']
#穿衣指数
drsg = data['suggestion']['drsg']['brf']
drsg_txt = data['suggestion']['drsg']['txt']
part1 = "当前时间:"+timetxt+"\n"+"现在外面的天气:" + now_weather+" "+"当前温度:"+now_tmp+" "+"体感温度:"+now_fl+" "+"现在风向"+now_wind_dir+","+now_wind_sc+"级风。"
part2="\n今天白天天气:"+weather_day+" "+"夜间天气:"+weather_night+" "+"最高气温:"+tmp_high+" "+"最低气温:"+tmp_low
part3="\n"+drsg_txt
part4="\n"+flu_txt
#all="\n"+part1+"\n"+part2+"\n"+part3+"\n"+part4
all="<p>"+part1+"</p>"+"\n<p>"+part2+"</p>"+"\n<p>"+part3+"</p>"+"\n<p>"+part4+"</p>"
print(all+"\n")
#发送邮件
def mail():
ret=True
try:
msg=MIMEText(all+'\n<html><body><img src="https://images2017.cnblogs.com/blog/1262814/201710/1262814-20171022164916131-63398347.jpg" alt="imageid"></body></html>','html','utf-8')
msg['Subject']=timetxt+"天气"
server=smtplib.SMTP("smtp.yeah.net",25)
server.login(my_sender,"密码")
server.sendmail(my_sender,[my_user,],msg.as_string())
server.quit()
except Exception:
ret=False
return ret
ret=mail()
if ret:
print("发送成功")
else:
print("发送失败")
代码是py3的,有很多代码是参照别人的爬虫代码+百度拼凑而成的