您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章给大家分享的是有关Python如何爬取杭州24时温度并展示的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
散点图 爬虫杭州今日24时温度 https://www.baidutianqi.com/today/58457.htm
利用正则表达式爬取杭州温度
面向对象编程
图表展示(散点图 / 折线图)
导入相关库
import requests import re from matplotlib import pyplot as plt from matplotlib import font_manager import matplotlib
类代码部分
class Weather(object): def __init__(self): self.url = 'https://www.baidutianqi.com/today/58457.htm' self.headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36'} #请求 def __to_requests(self): response = requests.get(url=self.url,headers=self.headers) return self.__to_paeser(response.content.decode('utf-8')) #解析 def __to_paeser(self,html): #正则表达式 要从数据循环的部分写起 如果从循环的父标签开始 , 则只会匹配到一个值 即父标签下的某个标签 , 而不是循环下的 pattern = re.compile('<li>.*?<font class="red">(.*?)</font>.*?<font class="blue">(.*?)</font></li>',re.S) return re.findall(pattern,html) #展示 def __to_show(self,data): x = [] y = [] for value in data: x.append(value[0]) y.append(int(value[1][-2:])) #画布 plt.figure(figsize=(15,8),dpi=80) #中文 /System/Library/Fonts/PingFang.ttc C:\Windows\Fonts\simsun.ttc my_font = font_manager.FontProperties(fname='/System/Library/Fonts/PingFang.ttc',size=18) #x y 轴刻度 标签 区分 y的刻度值/刻度标签 和 y本身的值 plt.xticks(fontproperties=my_font,rotation=60) y_ticks = ["{}℃".format(i) for i in range(min(y),max(y)+1)] plt.yticks(range(min(y),max(y)+1),y_ticks,fontproperties=my_font,rotation=60) # x y 轴说明 plt.xlabel('时间',color='orange',rotation=60,fontproperties=my_font) plt.ylabel('温度',color='orange',rotation=60,fontproperties=my_font) #网格 plt.grid(alpha=0.4) #标题 plt.title('当天时刻温度低值变化',fontproperties=my_font) #图例 plt.legend(prop=my_font) #作画 # plt.scatter(x,y,label='2019-08-22') plt.plot(x,y,color='red') plt.show() #操作 def to_run(self): result = self.__to_requests() self.__to_show(result)
调用并展示
if __name__ == '__main__': wt = Weather() wt.to_run()
感谢各位的阅读!关于“Python如何爬取杭州24时温度并展示”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。