温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-08-05 13:45:39 来源:亿速云 阅读:341 作者:Leah 栏目:编程语言

这期内容当中小编将会给大家带来有关如何用Python爬取天气数据并解析温度值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

如何用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模块提取值

lxmlbeautifulsoup解析在某些场合更高效

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) ……表示第12、……个子串。

最终结果:

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爬取天气数据并解析温度值了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI