1 importasyncio2 importaiohttp3 from lxml importetree4 importre5 from collections importnamedtuple6 importmatplotlib.pyplot as plt7
8 #用来正常显示中文标签
9 plt.rcParams['font.sans-serif']=['SimHei']10
11 Args = namedtuple('Args',['city','year','month'])12
13 #获取给定城市列表在给定年列表的以月为单位的每天平均温度字典,
14 #返回格式 {Args(city='wuhan', year=2018, month=4): [21.5, 22.5, ...], Args(city='shanghai', year=2018, month=2): [3.5, 2.5, ...], ...}
15 defget_weather(citys, years):16 tdata ={}17 wdata ={}18 async defwork(args):19 url = "http://www.tianqihoubao.com/lishi/%s/month/%d%02d.html" %(args.city, args.year, args.month)20 headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'}21 async with aiohttp.ClientSe