利用Python制作一個簡單的天氣播報系統
前言
大傢好,我是辣條
相信大傢都能感覺到最近天氣的多變,好幾次出門半路天氣轉變。辣條也深受其擾,直接給我整感冒,就差被隔離起來瞭,既然天氣我沒法做主,那不如用python整個天氣爬蟲來獲取天氣情況。這樣也好可以進行一個提前預防
工具
python3.7
pycharm
pyttsx3:語音播報庫
天氣數據來源
找尋一個天氣網站
比如說我們要查詢某地的天氣,在輸入地名後就能看到結果。
我們可以看到網站的url會有變化:
每個城市的天氣信息url就是在網站後面加上城市拼音,既然如此可以使用函數形參來解決城市輸入問題。
代碼實現
# 獲取天氣的方法 def get_weather(city): # 天氣的網站網址 字符串 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' } # 發起網絡請求並獲取網頁代碼 website = requests.get(url=url, headers=headers) data = etree.HTML(website.text) # 數據預處理 #xpath解析頁面天氣數據 weather_list = data.xpath('//dl[@class="weather_info"]//text()') weather_text = '歡迎使用天氣播報助手,以下是你想要瞭解的城市天氣:\n' for text in weather_list: weather_text += text if weather_text.find('[切換城市]'): weather_text = weather_text.strip('[切換城市]') print(weather_text) return weather_text
這樣就通過爬蟲就獲取到瞭每個城市的天氣數據,再通過pyttsx3構建出語音對象實例,將天氣文本放進去運行就可以瞭。
if __name__ == '__main__': city = input('請輸入您的城市,例如長沙:changsha-->').strip() weather_info = get_weather(city) # weather_info來獲取抓取到的天氣文字 weather = pyttsx3.init() # 初始化說話的對象 weather.say(weather_info) # 設置說話內容 weather.runAndWait() # 開始執行說話的操作
總結
這才是物理階層的未雨綢繆,貫穿用魔法打敗魔法的原理~ 哈哈哈
到此這篇關於利用Python制作一個簡單的天氣播報系統的文章就介紹到這瞭,更多相關Python天氣播報系統內容請搜索LevelAH以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持LevelAH!
推薦閱讀:
- 6個實用的Python自動化腳本詳解
- Python爬蟲+tkinter界面實現歷史天氣查詢的思路詳解
- Python利用itchat模塊定時給朋友發送微信信息
- Python天氣語音播報小助手
- 八個超級好用的Python自動化腳本(小結)