国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3爬蟲之自動查詢天氣并實現語音播報

2020-02-16 01:18:43
字體:
來源:轉載
供稿:網友

一、寫在前面

之前寫過一篇用Python發送天氣預報郵件的博客,但是因為要手動輸入城市名稱,還要打開郵箱才能知道天氣情況,這也太麻煩了。于是乎,有了這一篇博客,這次我要做的就是用Python獲取本機IP地址,并根據這個IP地址獲取物理位置也就是我所在的城市名稱,然后用之前的辦法實現查詢天氣,再利用百度語音得到天氣預報的MP3文件,最后播放,這樣是不是就很方(tou)便(lan)了呢?

二、具體步驟

這次有四個py文件:get_ip.py,get_wather.py,get_mp3.py和main.py。其中get_ip.py實現了獲取本機ip地址和物理位置,get_wather.py實現了根據物理位置查詢天氣,get_mp3.py實現了調用百度語音API把文本轉化成MP3文件,main.py是我們需要運行的py文件。這里由于查詢天氣用的是之前的方法,所以就不需要贅述了,主要說一下get_ip.py和get_mp3.py。

(1)get_ip.py

要獲取本機IP,這里有一個很簡單的辦法,就是打開這個網頁:https://www.ip.cn/,打開之后就能看到我們的IP地址和所在地理位置信息了。因為我們可以請求一下這個網頁,然后對返回的結果進行一下解析,就能得到我們想要的結果了。代碼如下:

"""Version: Python3.5Author: OniOnSite: http://www.cnblogs.com/TM0831/Time: 2019/2/9 16:46"""import reimport requests# 獲取本機IP和地理位置def get_ip():  res = requests.get("http://www.ip.cn")  result = re.findall("<p>您現在的 IP:<code>(.*?)</code></p><p>所在地理位置:<code>(.*?)</code>", res.text)  ip, address = "", ""  if len(result):    ip = result[0][0] # IP地址    address = result[0][1].split(' ')[0] # 地理位置  else:    print("Error!")    exit()  return ip, address

(2)get_mp3.py

這里需要使用百度云,沒有賬號的需要先注冊一下,然后搜索一下百度語音,再創建一個應用,如下:

這里AppID、API Key和Secret Key在后面都需要用到,具體使用方法參見官方文檔。這里還需要安裝一個第三方庫:baidu-aip,可以使用pip install baidu-aip進行下載安裝。

下面是一個調用百度語音接口的示例:

from aip import AipSpeech""" 你的 APPID AK SK """APP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)result = client.synthesis('你好百度', 'zh', 1, {  'vol': 5,})# 識別正確返回語音二進制 錯誤則返回dictif not isinstance(result, dict):  with open('auido.mp3', 'wb') as f:    f.write(result)

其中synthesis方法的各參數含義如下:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 开封县| 英吉沙县| 崇左市| 灵川县| 衡南县| 临汾市| 化德县| 屏东市| 灌南县| 冕宁县| 永丰县| 句容市| 洛阳市| 璧山县| 东兴市| 阜平县| 黄陵县| 车险| 浮山县| 桃园市| 开原市| 镇原县| 靖宇县| 永宁县| 武定县| 临泽县| 油尖旺区| 乌鲁木齐县| 厦门市| 南木林县| 新巴尔虎右旗| 南康市| 高陵县| 泸州市| 岑溪市| 砀山县| 茂名市| 南京市| 鲁甸县| 正镶白旗| 合川市|