Python3爬虫之自动查询天气并实现语音播报

  

  

之前写过一篇用Python发送天气预报邮件的博客,但是因为要手动输入城市名称,还要打开邮箱才能知道天气情况,这也太麻烦了。于是乎,有了这一篇博客,这次我要做的就是用Python获取本机IP地址,并根据这个IP地址获取物理位置也就是我所在的城市名称,然后用之前的办法实现查询天气,再利用百度语音得到天气预报的MP3文件,最后播放,这样是不是就很方(石头)便(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地址和所在地理位置信息了,因为我们可以请求一下这个网页,然后对返回的结果进行一下解析,就能得到我们想要的结果了。代码如下:

        ”“”   版本:Python3.5   作者:alt=" Python3爬虫之自动查询天气并实现语音播报">

  

这里AppID、API密钥和密钥在后面都需要用的到,具体使用方法参见官方文档。这里还需要安装一个第三方库:baidu-aip,可以使用pip安装baidu-aip进行下载安装。

  

下面是一个调用百度语音接口的示例:

        从aip进口AipSpeech      ”“你的APPID AK SK”“”   APP_ID='你的应用程序ID”   API_KEY='你的Api键的   SECRET_KEY='你的秘密密钥的      客户=AipSpeech (APP_ID API_KEY SECRET_KEY)   结果=客户。合成(“你好百度”、“古银的,1,{   “卷”:5   })      #识别正确返回语音二进制错误则返回字典   如果不是isinstance(因此,dict类型):   张开(“如何。mp3”、“白平衡”)作为f:   f.write(结果)      

其中合成方法的各参数含义如下:

  

 Python3爬虫之自动查询天气并实现语音播报

  

有了这个例子,做起来就简单多了,只需要将天气预报的文本传入进去就行了,然后我们可以根据自己喜好改变一下其他参数。代码如下:

        ”“”   版本:Python3.5   作者:alt=" Python3爬虫之自动查询天气并实现语音播报">

  

然后会生成一个weather.mp3文件:

  

 Python3爬虫之自动查询天气并实现语音播报

  

最后会播放这个MP3文件。

  

完整代码已上传到GitHub !

  

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

Python3爬虫之自动查询天气并实现语音播报