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


Posted in Python onMarch 27, 2020

本文实例讲述了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爬虫爬取杭州24时温度并展示操作示例
Python爬虫爬取杭州24时温度并展示操作示例

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

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

Python 相关文章推荐
python threading模块操作多线程介绍
Apr 08 Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
Windows下Anaconda的安装和简单使用方法
Jan 04 Python
Python 计算任意两向量之间的夹角方法
Jul 05 Python
python中for循环把字符串或者字典添加到列表的方法
Jul 20 Python
Django Docker容器化部署之Django-Docker本地部署
Oct 09 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
keras获得model中某一层的某一个Tensor的输出维度教程
Jan 24 Python
Python私有属性私有方法应用实例解析
Sep 15 Python
Django执行源生mysql语句实现过程解析
Nov 12 Python
用Python将GIF动图分解成多张静态图片
Jun 11 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
Mar 27 #Python
Python itertools.product方法代码实例
Mar 27 #Python
python实现图像全景拼接
Mar 27 #Python
如何在Python 游戏中模拟引力
Mar 27 #Python
Python 实现平台类游戏添加跳跃功能
Mar 27 #Python
django配置app中的静态文件步骤
Mar 27 #Python
使用卷积神经网络(CNN)做人脸识别的示例代码
Mar 27 #Python
You might like
php设计模式  Command(命令模式)
2011/06/17 PHP
PHP操作MongoDB GridFS 存储文件的详解
2013/06/20 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
PHP使用观察者模式处理异常信息的方法详解
2019/09/24 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
php自动加载代码实例详解
2021/02/26 PHP
jquery下json数组的操作实现代码
2010/08/09 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
Ext JS动态加载JavaScript创建窗体的方法
2016/06/23 Javascript
JS如何判断json是否为空
2016/07/06 Javascript
JS 60秒后重新发送验证码的实例讲解
2017/07/26 Javascript
vsCode安装使用教程和插件安装方法
2020/08/24 Javascript
详解如何在Vue项目中导出Excel
2019/04/19 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
原生JavaScript实现刮刮乐
2020/09/29 Javascript
详解Python中用于计算指数的exp()方法
2015/05/14 Python
jupyter安装小结
2016/03/13 Python
PyQt5每天必学之布局管理
2018/04/19 Python
mvc框架打造笔记之wsgi协议的优缺点以及接口实现
2018/08/01 Python
对tensorflow中的strides参数使用详解
2020/01/04 Python
python调用摄像头的示例代码
2020/09/28 Python
html标签之Object和EMBED标签详解
2013/07/04 HTML / CSS
大学生优秀的自我评价分享
2013/10/22 职场文书
个人融资协议书范本两则
2014/10/15 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
2014年管理工作总结
2014/11/22 职场文书
2015共产党员公开承诺书
2015/01/22 职场文书
2015年端午节国旗下演讲稿
2015/03/19 职场文书
致短跑运动员加油稿
2015/07/21 职场文书
创业计划书之珠宝饰品
2019/08/26 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python