如何用Python爬取天气数据并解析温度值
这期内容当中小编将会给大家带来有关如何用Python爬取天气数据并解析温度值,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
创新互联公司从2013年创立,是专业互联网技术服务公司,拥有项目成都做网站、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元崇仁做网站,已为上家服务,为崇仁各地企业和个人服务,联系电话:028-86922220
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爬取天气数据并解析温度值
本文地址:http://ybzwz.com/article/jhhgjg.html