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实现批量改文件名称的方法
May 25 Python
Django中使用celery完成异步任务的示例代码
Jan 23 Python
Python工厂函数用法实例分析
May 14 Python
python中sys.argv函数精简概括
Jul 08 Python
python获取服务器响应cookie的实例
Dec 28 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python脚本开机自启的实现方法
Jun 28 Python
Python中输入和输出(打印)数据实例方法
Oct 13 Python
基于python实现雪花算法过程详解
Nov 16 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
python time()的实例用法
Nov 03 Python
python中Mako库实例用法
Dec 31 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 foreach循环使用详解与实例代码
2010/05/08 PHP
PHP中file_get_contents高?用法实例
2014/09/24 PHP
给PHP开发者的编程指南 第一部分降低复杂程度
2016/01/18 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
PHP使用PDO 连接与连接管理操作实例分析
2020/04/21 PHP
javascript 窗口加载蒙板 内嵌网页内容
2010/11/19 Javascript
js判断样式className同时增加class或删除class
2013/01/30 Javascript
EasyUI,点击开启编辑框,并且编辑框获得焦点的方法
2015/03/01 Javascript
jQuery判断多个input file 都不能为空的例子
2015/06/23 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
JavaScript对象拷贝与Object.assign用法实例分析
2018/06/20 Javascript
加快Vue项目的开发速度的方法
2018/12/12 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
python k-近邻算法实例分享
2014/06/11 Python
tensorflow输出权重值和偏差的方法
2018/02/10 Python
Python中if elif else及缩进的使用简述
2018/05/31 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
详解小白之KMP算法及python实现
2019/04/04 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
python中几种自动微分库解析
2019/08/29 Python
python打印异常信息的两种实现方式
2019/12/24 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
中国最大隐形眼镜网上商城:视客眼镜网
2016/10/30 全球购物
英国最大的LED专业零售商:Led Hut
2018/03/16 全球购物
财务会计专业推荐信
2013/11/30 职场文书
大二学期个人自我评价
2014/01/13 职场文书
幼儿教师演讲稿
2014/05/06 职场文书
公司大门门卫岗位职责
2014/06/11 职场文书
银行奉献演讲稿
2014/09/16 职场文书
作弊检讨书范文
2015/05/06 职场文书
企业转让协议书(范文2篇)
2019/08/15 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python