利用Python制作一個(gè)簡(jiǎn)單的天氣播報(bào)系統(tǒng)
前言
大家好,我是辣條
相信大家都能感覺(jué)到最近天氣的多變,好幾次出門半路天氣轉(zhuǎn)變。辣條也深受其擾,直接給我整感冒,就差被隔離起來(lái)了,既然天氣我沒(méi)法做主,那不如用python整個(gè)天氣爬蟲(chóng)來(lái)獲取天氣情況。這樣也好可以進(jìn)行一個(gè)提前預(yù)防
工具
python3.7
pycharm
pyttsx3:語(yǔ)音播報(bào)庫(kù)
天氣數(shù)據(jù)來(lái)源
找尋一個(gè)天氣網(wǎng)站

比如說(shuō)我們要查詢某地的天氣,在輸入地名后就能看到結(jié)果。

我們可以看到網(wǎng)站的url會(huì)有變化:

每個(gè)城市的天氣信息url就是在網(wǎng)站后面加上城市拼音,既然如此可以使用函數(shù)形參來(lái)解決城市輸入問(wèn)題。
代碼實(shí)現(xiàn)
# 獲取天氣的方法
def get_weather(city):
# 天氣的網(wǎng)站網(wǎng)址 字符串
url = 'https://www.tianqi.com/' + city + '/'
# 偽裝瀏覽器的馬甲
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 Edg/83.0.478.58'
}
# 發(fā)起網(wǎng)絡(luò)請(qǐng)求并獲取網(wǎng)頁(yè)代碼
website = requests.get(url=url, headers=headers)
data = etree.HTML(website.text) # 數(shù)據(jù)預(yù)處理
#xpath解析頁(yè)面天氣數(shù)據(jù)
weather_list = data.xpath('//dl[@class="weather_info"]//text()')
weather_text = '歡迎使用天氣播報(bào)助手,以下是你想要了解的城市天氣:\n'
for text in weather_list:
weather_text += text
if weather_text.find('[切換城市]'):
weather_text = weather_text.strip('[切換城市]')
print(weather_text)
return weather_text
這樣就通過(guò)爬蟲(chóng)就獲取到了每個(gè)城市的天氣數(shù)據(jù),再通過(guò)pyttsx3構(gòu)建出語(yǔ)音對(duì)象實(shí)例,將天氣文本放進(jìn)去運(yùn)行就可以了。
if __name__ == '__main__':
city = input('請(qǐng)輸入您的城市,例如長(zhǎng)沙:changsha-->').strip()
weather_info = get_weather(city) # weather_info來(lái)獲取抓取到的天氣文字
weather = pyttsx3.init() # 初始化說(shuō)話的對(duì)象
weather.say(weather_info) # 設(shè)置說(shuō)話內(nèi)容
weather.runAndWait() # 開(kāi)始執(zhí)行說(shuō)話的操作
總結(jié)
這才是物理階層的未雨綢繆,貫穿用魔法打敗魔法的原理~ 哈哈哈
到此這篇關(guān)于利用Python制作一個(gè)簡(jiǎn)單的天氣播報(bào)系統(tǒng)的文章就介紹到這了,更多相關(guān)Python天氣播報(bào)系統(tǒng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python爬蟲(chóng)實(shí)戰(zhàn)項(xiàng)目之爬取pixiv圖片
最近決定寫個(gè)P站的爬蟲(chóng),實(shí)際操作起來(lái)確實(shí)遇到了些新問(wèn)題,通過(guò)解決也有所收獲,下面這篇文章主要給大家介紹了關(guān)于python爬蟲(chóng)實(shí)戰(zhàn)項(xiàng)目之爬取pixiv圖片的相關(guān)資料,需要的朋友可以參考下2022-07-07
idea創(chuàng)建springMVC框架和配置小文件的教程圖解
本文通過(guò)圖文并茂的形式給大家介紹了idea創(chuàng)建springMVC框架和配置小文件的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-09-09
K近鄰法(KNN)相關(guān)知識(shí)總結(jié)以及如何用python實(shí)現(xiàn)
這篇文章主要介紹了K近鄰法(KNN)相關(guān)知識(shí)總結(jié)以及如何用python實(shí)現(xiàn),幫助大家更好的利用python實(shí)現(xiàn)機(jī)器學(xué)習(xí),感興趣的朋友可以了解下2021-01-01
python實(shí)現(xiàn)比對(duì)美團(tuán)接口返回?cái)?shù)據(jù)和本地mongo數(shù)據(jù)是否一致示例
這篇文章主要介紹了python實(shí)現(xiàn)比對(duì)美團(tuán)接口返回?cái)?shù)據(jù)和本地mongo數(shù)據(jù)是否一致,涉及Python基于requests模塊的數(shù)據(jù)請(qǐng)求與比較運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下2019-08-08
終端能到import模塊 解決jupyter notebook無(wú)法導(dǎo)入的問(wèn)題
這篇文章主要介紹了在終端能到import模塊 而在jupyter notebook無(wú)法導(dǎo)入的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03
Python中不可錯(cuò)過(guò)的五個(gè)超有用函數(shù)
在本文中,我們用代碼詳細(xì)說(shuō)明了Python中超實(shí)用的5個(gè)函數(shù)的重要作用,這些函數(shù)雖然簡(jiǎn)單,但卻是Python中功能最強(qiáng)大的函數(shù),下面一起來(lái)看看文章的詳細(xì)介紹吧,希望對(duì)你的學(xué)習(xí)有所幫助2022-01-01
Python實(shí)現(xiàn)螺旋矩陣的填充算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)螺旋矩陣的填充算法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)螺旋矩陣的相關(guān)循環(huán)、遍歷、判斷、運(yùn)算等操作技巧,需要的朋友可以參考下2017-12-12

