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模块顶层运行的代码引起的一个Bug
Jul 04 Python
python元组操作实例解析
Sep 23 Python
windows下ipython的安装与使用详解
Oct 20 Python
python实现Adapter模式实例代码
Feb 09 Python
对python中的for循环和range内置函数详解
Apr 17 Python
Python lxml解析HTML并用xpath获取元素的方法
Jan 02 Python
python 实现selenium断言和验证的方法
Feb 13 Python
python仿evething的文件搜索器实例代码
May 13 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
Aug 21 Python
Python netmiko模块的使用
Feb 14 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
PyTorch中clone()、detach()及相关扩展详解
Dec 09 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 socke 向指定页面提交数据
2008/07/23 PHP
php使用多个进程同时控制文件读写示例
2014/02/28 PHP
PHP安全上传图片的方法
2015/03/21 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
Laravel下生成验证码的类
2017/11/15 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
客户端静态页面玩分页
2006/06/26 Javascript
js实现的早期滑动门菜单效果代码
2015/08/27 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
2020/08/27 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
详解elementUI中input框无法输入的问题
2020/04/27 Javascript
微信小程序实现上拉加载功能示例【加载更多数据/触底加载/点击加载更多数据】
2020/05/29 Javascript
[02:41]辉夜杯现场一家三口 “我爸玩风行 我玩血魔”
2015/12/27 DOTA
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
Tensorflow实现AlexNet卷积神经网络及运算时间评测
2018/05/24 Python
python定时关机小脚本
2018/06/20 Python
python asyncio 协程库的使用
2021/01/21 Python
纯CSS绘制漂亮的圆形图案效果
2014/05/07 HTML / CSS
Hurley官方网站:扎根于海滩生活方式的全球青年文化品牌
2020/05/18 全球购物
新春文艺演出主持词
2014/03/27 职场文书
党员大会主持词
2014/04/02 职场文书
保护环境的标语
2014/06/09 职场文书
社团活动总结书
2014/06/27 职场文书
119消防日活动总结
2014/08/29 职场文书
高中生第一学年自我鉴定
2014/09/12 职场文书
劳动模范获奖感言
2015/07/31 职场文书
高中化学教学反思
2016/02/22 职场文书
Python 可迭代对象 iterable的具体使用
2021/08/07 Python
SSM VUE Axios详解
2021/10/05 Vue.js