Python爬虫爬取杭州24时温度并展示操作示例

 更新时间:2020年03月27日 11:05:17   作者:OldKind超  
这篇文章主要介绍了Python爬虫爬取杭州24时温度并展示操作,结合实例形式分析了Python爬虫进行页面爬取与数据分析、展示相关操作技巧,需要的朋友可以参考下

本文实例讲述了Python爬虫爬取杭州24时温度并展示操作。分享给大家供大家参考,具体如下:

散点图 爬虫杭州今日24时温度 https://www.baidutianqi.com/today/58457.htm

  1. 利用正则表达式爬取杭州温度
  2. 面向对象编程
  3. 图表展示(散点图 / 折线图)

导入相关库

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相关内容可查看本站专题:《Python Socket编程技巧总结》、《Python正则表达式用法总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总

希望本文所述对大家Python程序设计有所帮助。

相关文章

  • python利用标准库如何获取本地IP示例详解

    python利用标准库如何获取本地IP示例详解

    这篇文章主要给大家介绍了关于python利用标准库如何获取本地IP的相关资料,文中先对python的标准库进行了简单的介绍,而后给大家详细介绍了关于python用标准库获取本地IP的实现方法,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-11-11
  • python判断给定的字符串是否是有效日期的方法

    python判断给定的字符串是否是有效日期的方法

    这篇文章主要介绍了python判断给定的字符串是否是有效日期的方法,涉及Python针对字符串与日期操作的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 解读torch.nn.GRU的输入及输出示例

    解读torch.nn.GRU的输入及输出示例

    这篇文章主要介绍了解读torch.nn.GRU的输入及输出示例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • 解决python 上传图片限制格式问题

    解决python 上传图片限制格式问题

    这篇文章主要介绍了python 上传图片限制格式问题,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • Python递归遍历列表及输出的实现方法

    Python递归遍历列表及输出的实现方法

    这篇文章主要介绍了Python递归遍历列表及输出的实现方法,可实现递归遍历列表中的每一项,若是元祖则判断是否为基本类型然后输出,需要的朋友可以参考下
    2015-05-05
  • Python实例教程之检索输出月份日历表

    Python实例教程之检索输出月份日历表

    这篇文章主要给大家介绍了关于Python实例教程之检索输出月份日历表的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • python读写删除复制文件操作方法详细实例总结

    python读写删除复制文件操作方法详细实例总结

    这篇文章主要介绍了python读写删除复制文件操作方法详细实例总结,需要的朋友可以参考下
    2021-04-04
  • python实现批量监听页面并发送邮件

    python实现批量监听页面并发送邮件

    这篇文章主要为大家详细介绍了python如何实现自动化批量监听页面并发送邮件,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • PyQt4编程之让状态栏显示信息的方法

    PyQt4编程之让状态栏显示信息的方法

    今天小编就为大家分享一篇PyQt4编程之让状态栏显示信息的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python datetime 如何处理时区信息

    Python datetime 如何处理时区信息

    这篇文章主要介绍了Python datetime 如何处理时区信息,帮助大家更好的用python 处理时间,感兴趣的朋友可以了解下。
    2020-09-09

最新评论