網(wǎng)站地址='https://lishi.tianqi.com/chengdu/201704'
import matplotlib.pyplot as plt import requests from lxml import etree from numpy import * import re if __name__ == '__main__': k = [] l = [] for i in range(21,22): for j in range(1,13): if j<10: url = "https://lishi.tianqi.com/chengdu/20%s0%s.html"%(i,j) headers={'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.60 Safari/537.36 Edg/100.0.1185.29'} res = requests.get(url,headers=headers) res.encoding = res.apparent_encoding tree = etree.HTML(res.text) es = tree.xpath('//ul[@class="thrui"]/li/div/text()')#溫度 a=es[1:-1:5]#最高氣溫,用切片 b=es[2:-1:5]#最低氣溫,用切片 # 1.將score_list列表轉(zhuǎn)換為以“,”為分隔符的字符串 list_string = ",".join(a) # 2.使用re模塊下的方法——findall對(duì)name_score_list_string進(jìn)行正則匹配,提取出所有的數(shù)值型字符串 score_list = re.findall(r"d+", list_string) # 3.將得到的score_list中的元素轉(zhuǎn)換為int型 list_int = list(map(int, score_list)) f = mean(list_int)#求平均數(shù) f1=round(f,0) ist=",".join(b) score_lis =re.findall(r"d+",ist) list_in =list(map(int,score_lis)) g=mean(list_in) g1=round(g,0) k.append(int(f1)) l.append(int(g1)) x1 = range(1, 10) x2 = range(1, 10) plt.rcParams['font.sans-serif'] = ['SimHei'] # 顯示中文標(biāo)簽 plt.rcParams['axes.unicode_minus'] = False plt.plot(x1, k, label='最高溫度', linewidth=3, color='r', marker='o', markerfacecolor='blue', markersize=12) plt.plot(x1, l, label='最低溫度') plt.xlabel('月份') plt.ylabel('氣溫') # 添加圖形標(biāo)題 plt.title('每月平均最高氣溫波動(dòng)趨勢(shì)') plt.legend() # 顯示圖形 plt.show()
?
本文摘自 :https://www.cnblogs.com/