1153天数据告诉你黄山云海在哪些天容易遇见

数据来源:黄山风景区管理委员会官网 > 气象信息

原创:Ing_ideas


文章目录

  • 1153天数据告诉你黄山云海在哪些天容易遇见
    • @[toc]
  • 一、数据获取
    • 1.request请求
    • 2.lxml结合xpath解析网页源代码
    • 3正则提取文本
  • 二、数据清洗
    • 将数据去重、将日期转为datetime对象等
    • 2.读入数据
  • 三、数据分析
  • 最后

云海是黄山的第一奇观。

据百度百科记载,黄山一年只有51天可以看到云海,每年11月到第二年的5月是观赏环山云海的最佳时间段。抱着数据党的态度,想用真实的数据证明以上结论是否可信。


流程:

1.数据获取:黄山官网的气象预告从2018年起至今提供了条天气预报数据,包括我们所需的基本天气情况以及云海概率。

导航:黄山风景区管理委员会官网-气象信息

2.对获得文本数据进行提取,这里我们采用的Python中正则的方法来提取。

3.进行数据透视和绘图分析。

一、数据获取

1.request请求

根据网页结构构造url请求,一共75页。

url = 'https://hsgwh.huangshan.gov.cn/content/column/6794224?pageIndex={}'.format(i)

2.lxml结合xpath解析网页源代码

#定义字典储存数据
item = {}
#解析源代码
content_lst = selector.xpath("//div/div[3]/div[3]//ul//a//span/text()")
#解析日期
date_lst = selector.xpath('//li//span[@class="right date"]/text()')

3正则提取文本

首先要解决正则如何匹配中文字的问题:

1.”[\u4e00-\u9fa5]+”可以表示一个或者多个中文字符;

2.利用编码函数将特定字符转换为unicode编码。

def get_unicode(str):str_unicode = str.encode('unicode-escape').decode()return print(str_unicode)
M_unicode = get_unicode('月')
D_unicode = get_unicode('日')#以下是输出,填入匹配规则就行
#\u6708
#\u65e5

# 循环解析
for num,n in enumerate(content_lst):    pattern_num = re.compile(r'-?\d{1,2}') # 匹配1-2位数字 -?此符号最多可以有一次pattern_per = re.compile(r'-?\d{1,2}%') # 匹配1-3位概率pattern_tex = re.compile(r'[\u4e00-\u9fa5]') # 匹配所有汉字pattern_TEM = re.compile(r'\u6c14\u6e29-?\d{1,2}[\u4e00-\u9fa5]-?\d{1,2}')pattern_SR = re.compile(r'\d{1}\u65f6\d{1,3}\u5206') # 日出时间文本# 最低和最高温度tems = pattern_TEM.findall(n)for tem in tems:tem_min = pattern_num.findall(tem)[0]tem_max = pattern_num.findall(tem)[1]item['tem_min'] = tem_minitem['tem_max'] = tem_max
#云海概率2018有和2022用的不同表述,需要多个条件和手动判断
if len(percent) == 2:sunrise_time_per = percent[0]item['sunrise_time_per'] = sunrise_time_per# 云海可见概率sea_of_clouds_per = percent[1]item['sea_of_clouds_per'] = sea_of_clouds_perelif len(percent) == 1:sunrise_time_per = percent[0]item['sunrise_time_per'] = sunrise_time_perif len(per_kejianyunhai) == 1 :item['sea_of_clouds_per'] = '80%'elif len(per_oujianyunhai) == 1:item['sea_of_clouds_per'] = '30%'else:print(n+url+'网页需核实1')else:print(n+url+'网页需核实0')item['sunrise_time_per'] = item['sea_of_clouds_per'] = '0'

# 储存        pd.DataFrame([item]).to_csv('./weather.csv',mode='a',index=False,header=0)

二、数据清洗

将数据去重、将日期转为datetime对象等

df.drop_duplicates(inplace=True,ignore_index=True)
read_csv(parse_dates=['datetime']) # parse_dates将某些列解析为 DataTime 对象,这比使用 to_datetime() 方便

2.读入数据

代码如下(示例):

data = pd.read_csv('https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


三、数据分析

究竟哪些天容易见到云海(请横屏观看):

三年平均下来,共有76天云海可见概率大于等于60%,占全年20%,所以碰上黄山云海还是需要靠运气的。我们可以看到五一和十一黄金周云海概率不到60%,同时人流又多还会堵在上下山途中动不了,建议错峰出游。

他们集中在每年11-12月、1-2月、6月,其中冬季能见到雾凇与云海两大奇观,黄山的淡季门票还打折,时间是2021年12月20日至2022年1月20日,查好天气错峰看雪景也是很不错的。

最后

感谢阅读,如果觉得文章有用,希望点赞和关注。

1153天数据告诉你黄山云海在哪些天容易遇见相关推荐

  1. 大数据告诉你80、90后的真实负债

    来自:苏宁金融研究院 近期,一篇"90后超一半网贷"的文章引起了网络热议.看似90后的收入无法支撑他们的超前消费,然而,20多岁的90后真的比奔四的80后负债更多吗? 就此,我们抽 ...

  2. 年货买了没?大数据告诉你年货买什么!

    来源:人民数据本文约3000字,建议阅读6分钟本文用大数据告诉你年货买什么. 牛年春节悄然将至,年货购置成为家家户户关心的重点.年年岁岁"春"相似,但面对依然紧迫的防疫大局,今年的 ...

  3. BigData之matplotlib:爬虫2018年福布斯中国富豪榜进行数据统计分析,大数据告诉你一些不可思议的事情

    BigData之matplotlib:爬虫2018年福布斯中国富豪榜进行数据统计分析,大数据告诉你一些不可思议的事情 目录 数据统计分析 1.2018年福布斯中国富豪榜(资产≥60亿美元)财富地区分布 ...

  4. 计算机html二级难度,计算机二级考试越来越难的实锤!真实数据告诉你到底难在哪里?...

    原标题:计算机二级考试越来越难的实锤!真实数据告诉你到底难在哪里? 相信参加过3月考试的小伙伴都有这样的感觉,选择题新考点虽然没有增加很多,但是操作题就一言难尽,不仅新增了4套新题,而且原题也进行了更 ...

  5. python 干什么工作具有明显优势-科多大数据告诉你Python为什么这么牛?学习python有什么优势?...

    原标题:科多大数据告诉你Python为什么这么牛?学习python有什么优势? 选择要学习的技术和选择要上的大学一样重要,如果选错了,你将来不仅得不到自己喜欢的高薪工作,反而会弄得一堆麻烦.如果你打开 ...

  6. 商业贷款和公积金贷款差多少?一组数据告诉你!

    商业贷款和公积金贷款差多少?一组数据告诉你! 2017-07-13 18:06 说到房贷,自然会想到商业贷款和公积金贷款这两种贷款方式,这两种方式有很多的区别,比较明显的就是贷款利率,这也是很多人会选 ...

  7. 大数据告诉你何时何地买手机最划算!

    文章讲的是大数据告诉你何时何地买手机最划算, 你想知道一年之中哪一天手机最便宜吗? 你想知道手机在哪家电商买最便宜吗? 你想知道哪些品牌的手机卖的最好吗? 品类包含:手机 平台包含:天猫.京东.1号店 ...

  8. 8万条数据告诉你:跟着大股东和高管买他家股票,能赚钱吗?【邢不行|量化小讲堂系列60-实战篇】

    引言: 邢不行的系列帖子"量化小讲堂",通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助. [历史文章汇总]请点击此处 [必读文章]EOS期现 ...

  9. 计算机科学与技术 美国 研究生 gpa3.5 托福100,历年录取数据告诉你:美国研究生申请TOEFL、GRE、GPA需要考多少分?...

    原标题:历年录取数据告诉你:美国研究生申请TOEFL.GRE.GPA需要考多少分? 想冲刺名校?快进入"2019美国研究生择校群",与5000名留学家长共同探讨择校.申请.提分.备 ...

最新文章

  1. FPGA最全科普总结
  2. linux蓝牙设备无法打开,linux 下 无线 wifi 蓝牙 无法启用
  3. C++:随笔3--复杂的数据结构
  4. Intellij IDEA必备插件,提高效率的“七种武器”!
  5. 生产性服务业的源起及内涵(制造服务业的前世今生之一)
  6. 毕业设计(二十四)---退出 博客 清除session
  7. 成都网络推广带大家了解一个好的标题需遵循的原则有哪些?
  8. python编程入门p-Python编程_基础入门
  9. 内存溢出原因及解决方案
  10. veth-pair技术在docker中的应用(docker网络通信)及tomcat Dockerfile示例
  11. 如何用 Cocos Creator 3D 如何实现小姐姐的发丝高光?
  12. html action能跨域么,ASP.NET MVC 中设置跨域
  13. 什么是序列化和反序列化
  14. Python解决模块无法引用问题之pymysql模块导入
  15. Tomcat详解(五)——jforum论坛部署实战
  16. [转]MapX 操作总结
  17. 学校网络认证服务器无响应,校园网常见问题
  18. 系统集成项目管理工程师10《项目干系人管理》
  19. DISCUZ代码分析
  20. Word 恢复默认样式

热门文章

  1. 炖锅的蒸煮鸿蒙煮排骨煮多久能熟,排骨炖多长时间就熟了 排骨需要炖多久才会熟...
  2. GTP与MBR硬盘分区区别(UEFI介绍)
  3. iPhone手机,ibooks为什么突然不能用了?
  4. C语言中除以怎么使用
  5. 深圳大学算法设计实验五
  6. easyAR学习(二)
  7. FMEA失效模式各独立风险需严守【S/O/D】标准
  8. 【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(中国区域高精度同化气象站CMADS)
  9. win10一键重装系统软件哪个好呢?
  10. JL杰理AC692X(AC692N)蓝牙自定义配对密码