如何用Python爬取天氣數(shù)據(jù)并解析溫度值-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線(xiàn)動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買(mǎi)多久送多久,劃算不套路!

創(chuàng)新互聯(lián)建站是由多位在大型網(wǎng)絡(luò)公司、廣告設(shè)計(jì)公司的優(yōu)秀設(shè)計(jì)人員和策劃人員組成的一個(gè)具有豐富經(jīng)驗(yàn)的團(tuán)隊(duì),其中包括網(wǎng)站策劃、網(wǎng)頁(yè)美工、網(wǎng)站程序員、網(wǎng)頁(yè)設(shè)計(jì)師、平面廣告設(shè)計(jì)師、網(wǎng)絡(luò)營(yíng)銷(xiāo)人員及形象策劃。承接:網(wǎng)站制作、成都網(wǎng)站制作、網(wǎng)站改版、網(wǎng)頁(yè)設(shè)計(jì)制作、網(wǎng)站建設(shè)與維護(hù)、網(wǎng)絡(luò)推廣、數(shù)據(jù)庫(kù)開(kāi)發(fā),以高性?xún)r(jià)比制作企業(yè)網(wǎng)站、行業(yè)門(mén)戶(hù)平臺(tái)等全方位的服務(wù)。

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何用Python爬取天氣數(shù)據(jù)并解析溫度值,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

如何用Python爬取天氣數(shù)據(jù)并解析溫度值

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)

通過(guò)lxml模塊提取值

lxml比beautifulsoup解析在某些場(chǎng)合更高效

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

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

結(jié)果:

['香河', '涿州', '唐山', '滄州', '天津', '廊坊', '太原', '石家莊', '涿鹿', '張家口', '保

定', '三河', '北京孔廟', '北京國(guó)子監(jiān)', '中國(guó)地質(zhì)博物館', '月壇公

園', '明城墻遺址公園', '北京市規(guī)劃展覽館', '什剎海', '南鑼鼓巷', '天壇公園', '北海公園',

'景山公園', '北京海洋館']

['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' ]

構(gòu)造DataFrame對(duì)象

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)

詳細(xì)說(shuō)明子字符創(chuàng)捕獲

除了簡(jiǎn)單地判斷是否匹配之外,正則表達(dá)式還有提取子串的強(qiáng)大功能。用() 表示的就是要提取的分組(group)。比如: ^(\d{3})-(\d{3,8})$ 分別定義了兩個(gè)組,可以直接從匹配的字符串中提取出區(qū)號(hào)和本地號(hào)碼。

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

如果正則表達(dá)式中定義了組,就可以在Match 對(duì)象上用group() 方法提取出子串來(lái)。

注意到group(0) 永遠(yuǎn)是原始字符串, group(1) 、group(2) ……表示第1、2、……個(gè)子串。

最終結(jié)果:

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 北京國(guó)子監(jiān) 13/-3°C 13 -3

14 中國(guó)地質(zhì)博物館 12/-3°C 12 -3

15 月壇公園 12/-3°C 12 -3

16 明城墻遺址公園 13/-3°C 13 -3

17 北京市規(guī)劃展覽館 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爬取天氣數(shù)據(jù)并解析溫度值了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。

分享文章:如何用Python爬取天氣數(shù)據(jù)并解析溫度值-創(chuàng)新互聯(lián)
文章鏈接:http://bm7419.com/article40/dpoceo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)、品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站維護(hù)移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)