学分高考 Python

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

发布时间: 2022-05-27 20:55:01

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

用Python爬取天气数据

爬取的html 结构

用Python爬取天气数据

import requests

from lxml import etree

import pandas as pd

import re

url = 'http://www.weather.com.cn/weather1d/101010100.shtml#input'

with requests.get(url) as res:

content = res.content

html = etree.HTML(content)

通过lxml模块提取值

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

location = html.xpath('//*[@id="around"]//a[@target="_blank"]/span/text()')

temperature = html.xpath('//*[@id="around"]/div/ul/li/a/i/text()')

结果:

['香河','涿州','唐山','沧州','天津','廊坊','太原','石家庄','涿鹿','张家口','保

定','三河','北京孔庙','北京国子监','中国地质博物馆','月坛公

园','明城墙遗址公园','北京市规划展览馆','什刹海','南锣鼓巷','天坛公园','北海公园',

'景山公园','北京海洋馆']

['11/-5°C','14/-5°C','12/-6°C','12/-5°C','11/-1°C','11/-5°C','8/-7°C',

'13/-2°C','8/-6°C','5/-9°C','14/-6°C','11/-4°C','13/-3°C'

,'13/-3°C','12/-3°C','12/-3°C','13/-3°C' ]

构造Dataframe对象

df = pd.Dataframe({'location':location,'temperature':temperature})

print('温度列')

print(df['temperature'])

正则解析温度值

df['high'] = df['temperature'].apply(lambda x: int(re.match('(-?[0-9]*?)/-?[0-

9]*?°C',x).group(1) ) )

df['low'] = df['temperature'].apply(lambda x: int(re.match('-?[0-9]*?/(-?[0-

9]*?)°C',x).group(1) ) )

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爬取天气数据并解析温度值】由作者教培参考提供。该文观点仅代表作者本人,学分高考系信息发布平台,仅提供信息存储空间服务,若存在侵权问题,请及时联系管理员或作者进行删除。
我们采用的作品包括内容和图片部分来源于网络用户投稿,我们不确定投稿用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的权利,请联系我站将及时删除。
内容侵权、违法和不良信息举报
Copyright @ 2024 学分高考 All Rights Reserved 版权所有. 湘ICP备17021685号