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 zip文件 压缩
Dec 24 Python
Python基础之函数用法实例详解
Sep 10 Python
解析Python中while true的使用
Oct 13 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
Jun 27 Python
python pandas 对时间序列文件处理的实例
Jun 22 Python
Python使用while循环花式打印乘法表
Jan 28 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
Python反爬虫伪装浏览器进行爬虫
Feb 28 Python
python程序输出无内容的解决方式
Apr 09 Python
Pycharm中安装wordcloud等库失败问题及终端通过pip安装的Python库如何添加到Pycharm解释器中(推荐)
May 10 Python
Python 中的 copy()和deepcopy()
Nov 07 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
SONY ICF-SW07收音机电路分析
2021/03/02 无线电
PHP脚本的10个技巧(6)
2006/10/09 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
php curl获取网页内容(IPV6下超时)的解决办法
2013/07/16 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
两级联动select刷新后其值保持不变的实现方法
2014/01/27 PHP
php数组使用规则分析
2015/02/27 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
jquery全选/全不选/反选另一种实现方法(配合原生js)
2013/04/07 Javascript
图片翻转效果具体实现代码
2014/01/09 Javascript
nodejs npm package.json中文文档
2014/09/04 NodeJs
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
js仿黑客帝国字母掉落效果代码分享
2020/11/08 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
jquery实现图片上传前本地预览功能
2016/05/10 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
webpack搭建vue 项目的步骤
2017/12/27 Javascript
webpack+vue-cil中proxyTable处理跨域的方法
2018/07/20 Javascript
Echart折线图手柄触发事件示例详解
2018/12/16 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
2019/03/12 Javascript
iphone刘海屏页面适配方法
2019/05/07 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
[02:23]2016国际邀请赛中国区预选赛wings晋级之路
2016/06/29 DOTA
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
pygame库实现俄罗斯方块小游戏
2019/10/29 Python
python opencv进行图像拼接
2020/03/27 Python
千禧酒店及度假村官方网站:Millennium Hotels and Resorts
2019/05/10 全球购物
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
Python如何定义一个函数
2015/09/01 面试题
管理提升方案
2014/06/04 职场文书
优秀毕业生找工作自荐信
2014/06/23 职场文书
党员应该树立反腐倡廉的坚定意识思想汇报
2014/09/12 职场文书
小学四年级作文之人物作文
2019/11/06 职场文书
Vue图片裁剪组件实例代码
2021/07/02 Vue.js