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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
深入讲解Python中面向对象编程的相关知识
May 25 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
Python操作SQLite数据库的方法详解
Jun 16 Python
关于Django外键赋值问题详解
Aug 13 Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
Pycharm连接远程服务器并实现远程调试的实现
Aug 02 Python
python反转列表的三种方式解析
Nov 08 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
Python中tkinter的用户登录管理的实现
Apr 22 Python
Python sklearn分类决策树方法详解
Sep 23 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中检查文件或目录是否存在的代码小结
2012/10/22 PHP
PHP使用xmllint命令处理xml与html的方法
2014/12/15 PHP
Laravel核心解读之异常处理的实践过程
2019/02/24 PHP
Laravel框架实现多数据库连接操作详解
2019/07/12 PHP
jQuery的选择器中的通配符[id^='code']或[name^='code']及jquery选择器总结
2015/12/24 Javascript
浅谈在node.js进入文件目录的问题
2018/05/13 Javascript
webpack-url-loader 解决项目中图片打包路径问题
2019/02/15 Javascript
vue 关闭浏览器窗口的时候,清空localStorage的数据示例
2019/11/06 Javascript
vue引入静态js文件的方法
2020/06/20 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
python日志记录模块实例及改进
2017/02/12 Python
如何高效使用Python字典的方法详解
2017/08/31 Python
python如何在列表、字典中筛选数据
2018/03/19 Python
Python3.5.3下配置opencv3.2.0的操作方法
2018/04/02 Python
django利用request id便于定位及给日志加上request_id
2018/08/26 Python
对django2.0 关联表的必填on_delete参数的含义解析
2019/08/09 Python
python 多进程共享全局变量之Manager()详解
2019/08/15 Python
python日期与时间戳的各种转换示例
2020/02/12 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
利用python 下载bilibili视频
2020/11/13 Python
python 实现表情识别
2020/11/21 Python
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
药物学专业学生的自我评价
2013/10/27 职场文书
八年级音乐教学反思
2014/01/09 职场文书
写求职信有哪些注意事项
2014/05/08 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
2014年最新离婚协议书范本
2014/10/11 职场文书
写给领导的感谢信
2015/01/22 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
教师节倡议书2015
2015/04/27 职场文书
浅谈如何提高PHP代码的质量
2021/05/28 PHP
浅谈Python数学建模之整数规划
2021/06/23 Python
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL