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 相关文章推荐
仅用50行代码实现一个Python编写的计算器的教程
Apr 17 Python
Python中的rfind()方法使用详解
May 19 Python
python 采集中文乱码问题的完美解决方法
Sep 27 Python
关于python的bottle框架跨域请求报错问题的处理方法
Mar 19 Python
用pandas按列合并两个文件的实例
Apr 12 Python
解决python3爬虫无法显示中文的问题
Apr 12 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
在双python下设置python3为默认的方法
Oct 31 Python
python DataFrame转dict字典过程详解
Dec 26 Python
利用pytorch实现对CIFAR-10数据集的分类
Jan 14 Python
基于python3实现倒叙字符串
Feb 18 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 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将任何格式视频转为flv的代码
2009/09/03 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
PHP+JS实现的实时搜索提示功能
2018/03/13 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
2011/09/02 Javascript
javascript中的nextSibling使用陷(da)阱(keng)
2014/05/05 Javascript
用js替换除数字与逗号以外的所有字符的代码
2014/06/07 Javascript
javascript中HTMLDOM操作详解
2014/12/11 Javascript
jQuery仅用3行代码实现的显示与隐藏功能完整实例
2015/10/08 Javascript
快速学习AngularJs HTTP响应拦截器
2015/12/31 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
jQuery元素选择器实例代码
2017/02/06 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
element-ui的回调函数Events的用法详解
2018/10/16 Javascript
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
详解JavaScript匿名函数和闭包
2020/07/10 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
ebookers英国:隶属全球最大的在线旅游公司Expedia
2017/12/28 全球购物
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
电子商务应届生求职信
2013/11/16 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
初中英语教师个人工作总结
2015/02/09 职场文书
初任公务员培训心得体会
2016/01/08 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
C站最全Python标准库总结,你想要的都在这里
2021/07/03 Python
微软Win11有哪些隐藏功能? windows11多个功能汇总
2021/11/21 数码科技