当前位置:   article > 正文

用Python爬取天气数据并解析温度值_python 获取温度

python 获取温度

随着人工智能和大数据的发展,本来就风头强劲的Python在近几年更是发展得如日中天。众所周知,Python的应用场景十分广泛,像是在科学计算、游戏开发、web开发框架等方面都发挥了极大的作用,因此夸张一点说,掌握了Python你就无所不能了!下面我们就来看看如何用Python爬取天气数据并解析温度值~

爬取的html 结构

  1. import requests
  2. from lxml import etree
  3. import pandas as pd
  4. import re
  5. url = 'http://www.weather.com.cn/weather1d/101010100.shtml#input'
  6. with requests.get(url) as res:
  7. content = res.content
  8. html = etree.HTML(content)

通过lxml模块提取值

lxml比beautifulsoup解析在某些场合更高效

  1. location = html.xpath('//*[@id="around"]//a[@target="_blank"]/span/text()')
  2. temperature = html.xpath('//*[@id="around"]/div/ul/li/a/i/text()')

结果:

  1. ['香河', '涿州', '唐山', '沧州', '天津', '廊坊', '太原', '石家庄', '涿鹿', '张家口', '保
  2. 定', '三河', '北京孔庙', '北京国子监', '中国地质博物馆', '月坛公
  3. 园', '明城墙遗址公园', '北京市规划展览馆', '什刹海', '南锣鼓巷', '天坛公园', '北海公园',
  4. '景山公园', '北京海洋馆']
  5. ['11/-5°C', '14/-5°C', '12/-6°C', '12/-5°C', '11/-1°C', '11/-5°C', '8/-7°C',
  6. '13/-2°C', '8/-6°C', '5/-9°C', '14/-6°C', '11/-4°C', '13/-3°C'
  7. , '13/-3°C', '12/-3°C', '12/-3°C', '13/-3°C' ]

构造DataFrame对象

  1. df = pd.DataFrame({'location':location, 'temperature':temperature})
  2. print('温度列')
  3. print(df['temperature'])

正则解析温度值

  1. df['high'] = df['temperature'].apply(lambda x: int(re.match('(-?[0-9]*?)/-?[0-
  2. 9]*?°C', x).group(1) ) )
  3. df['low'] = df['temperature'].apply(lambda x: int(re.match('-?[0-9]*?/(-?[0-
  4. 9]*?)°C', x).group(1) ) )
  5. print(df)

详细说明子字符创捕获

除了简单地判断是否匹配之外,正则表达式还有提取子串的强大功能。用() 表示的就是要提取的分组(group)。比如: ^(\d{3})-(\d{3,8})$ 分别定义了两个组,可以直接从匹配的字符串中提取出区号和本地号码。

m = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')

print(m.group(0))

print(m.group(1))

print(m.group(2))

# 010-12345

# 010

# 12345

如果正则表达式中定义了组,就可以在Match 对象上用group() 方法提取出子串来。

注意到group(0) 永远是原始字符串, group(1) 、group(2) ……表示第1、2、……个子串。

最终结果:

Name: temperature, dtype: object

location temperature high low

0 香河 11/-5°C 11 -5

1 涿州 14/-5°C 14 -5

2 唐山 12/-6°C 12 -6

3 沧州 12/-5°C 12 -5

4 天津 11/-1°C 11 -1

5 廊坊 11/-5°C 11 -5

6 太原 8/-7°C 8 -7

7 石家庄 13/-2°C 13 -2

8 涿鹿 8/-6°C 8 -6

9 张家口 5/-9°C 5 -9

10 保定 14/-6°C 14 -6

11 三河 11/-4°C 11 -4

12 北京孔庙 13/-3°C 13 -3

13 北京国子监 13/-3°C 13 -3

14 中国地质博物馆 12/-3°C 12 -3

15 月坛公园 12/-3°C 12 -3

16 明城墙遗址公园 13/-3°C 13 -3

17 北京市规划展览馆 12/-2°C 12 -2

18 什刹海 12/-3°C 12 -3

19 南锣鼓巷 13/-3°C 13 -3

20 天坛公园 12/-2°C 12 -2

21 北海公园 12/-2°C 12 -2

22 景山公园 12/-2°C 12 -2

23 北京海洋馆 12/-3°C 12 -3

以上就是用Python爬取天气数据并解析温度值的解析,大家都学会了吗?学习Python还能通过爬虫技术去获取各种页面数据,因此掌握Python不仅仅是编程技术工作岗位的要求,还是提高非编程职业竞争力的需要,大家还不快快学起来~

 Python经验分享

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

Python学习路线

这里把Python常用的技术点做了整理,有各个领域的知识点汇总,可以按照上面的知识点找对应的学习资源。
在这里插入图片描述

学习软件

Python常用的开发软件,会给大家节省很多时间。
在这里插入图片描述

学习视频

编程学习一定要多多看视频,书籍和视频结合起来学习才能事半功倍。
在这里插入图片描述

100道练习题

在这里插入图片描述

实战案例

光学理论是没用的,学习编程切忌纸上谈兵,一定要动手实操,将自己学到的知识运用到实际当中。
在这里插入图片描述
最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/362883
推荐阅读
相关标签
  

闽ICP备14008679号