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 Web框架Pylons中使用MongoDB的例子
Dec 03 Python
Python实现Linux中的du命令
Jun 12 Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 Python
python实现京东秒杀功能
Jul 30 Python
Python使用Pickle模块进行数据保存和读取的讲解
Apr 09 Python
python使用tkinter库实现五子棋游戏
Jun 18 Python
Python编写带选项的命令行程序方法
Aug 13 Python
WxPython实现无边框界面
Nov 18 Python
python 实现两个线程交替执行
May 02 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 Python
安装不同版本的tensorflow与models方法实现
Feb 20 Python
如何理解及使用Python闭包
Jun 01 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 fckeditor 调用的函数
2009/06/21 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
php-perl哈希算法实现(times33哈希算法)
2013/12/30 PHP
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP读取、解析eml文件及生成网页的方法示例
2017/09/04 PHP
return false;和e.preventDefault();的区别
2010/07/11 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
常用DOM整理
2015/06/16 Javascript
介绍一个简单的JavaScript类框架
2015/06/24 Javascript
Javascript将双字节字符转换成单字节字符并计算长度
2016/06/22 Javascript
javascript字符串对象常用api函数小结(连接,替换,分割,转换等)
2016/09/20 Javascript
Ionic + Angular.js实现验证码倒计时功能的方法
2017/06/12 Javascript
form表单数据封装成json格式并提交给服务器的实现方法
2017/12/14 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
JS常见DOM节点操作示例【创建 ,插入,删除,复制,查找】
2018/05/14 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
vue、react等单页面项目部署到服务器的方法及vue和react的区别
2018/09/29 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
使用Python更换外网IP的方法
2018/07/09 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
Python实现屏幕录制功能的代码
2020/03/02 Python
Jupyter Notebook远程登录及密码设置操作
2020/04/10 Python
一款纯css3实现的鼠标经过按钮特效教程
2014/11/09 HTML / CSS
html5 worker 实例(一) 为什么测试不到效果
2013/06/24 HTML / CSS
教师自荐信范文
2013/12/09 职场文书
网络书店创业计划书
2014/02/07 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
企业财务经理岗位职责
2015/04/08 职场文书
幼儿园综治宣传月活动总结
2015/05/07 职场文书
小学新课改心得体会
2016/01/22 职场文书
python语言中pandas字符串分割str.split()函数
2022/08/05 Python