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中的自省(反射)详解
Jun 02 Python
python简单判断序列是否为空的方法
Jun 30 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
浅谈dataframe中更改列属性的方法
Jul 10 Python
解决python给列表里添加字典时被最后一个覆盖的问题
Jan 21 Python
Python 函数绘图及函数图像微分与积分
Nov 20 Python
使用OpenCV-python3实现滑动条更新图像的Canny边缘检测功能
Dec 12 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
python数据类型可变不可变知识点总结
Mar 06 Python
python判断正负数方式
Jun 03 Python
python集合能干吗
Jul 19 Python
Win10环境中如何实现python2和python3并存
Jul 20 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
Zend Framework教程之路由功能Zend_Controller_Router详解
2016/03/07 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
Laravel框架创建路由的方法详解
2019/09/04 PHP
PHP的JSON封装、转变及输出操作示例
2019/09/27 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
php实现通过stomp协议连接ActiveMQ操作示例
2020/02/23 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
JavaScript中数组对象的那些自带方法介绍
2013/03/12 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
js获取元素外链样式的方法
2015/01/27 Javascript
js检测iframe是否加载完成的方法
2015/11/26 Javascript
在js代码拼接dom对象到页面上去的模板总结(必看)
2017/02/14 Javascript
深入探究AngularJs之$scope对象(作用域)
2017/07/20 Javascript
javascript用rem来做响应式开发
2018/01/13 Javascript
简述vue中的config配置
2018/01/23 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
详解使用jest对vue项目进行单元测试
2018/09/07 Javascript
JavaScript使用localStorage存储数据
2019/09/25 Javascript
JavaScript语法约定和程序调试原理解析
2020/11/03 Javascript
python实现画圆功能
2018/01/25 Python
python Django的web开发实例(入门)
2019/07/31 Python
详解python中的数据类型和控制流
2019/08/08 Python
Python多线程爬取豆瓣影评API接口
2019/10/22 Python
Python编程快速上手——疯狂填词程序实现方法分析
2020/02/29 Python
使用CSS3的appearance属性改变元素的外观的方法
2015/12/12 HTML / CSS
For Art’s Sake官网:手工制作的奢华眼镜
2018/12/15 全球购物
一份Java笔试题
2012/02/21 面试题
外科实习自我鉴定
2013/10/06 职场文书
学习委员自我鉴定
2014/01/13 职场文书
超级搞笑检讨书
2014/01/15 职场文书
市场总经理岗位职责
2014/04/11 职场文书
材料采购员岗位职责
2015/04/03 职场文书
2015年酒店服务员工作总结
2015/05/18 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
MySQL远程无法连接的一些常见原因总结
2022/09/23 MySQL