python获取天气源(Python3爬虫之自动查询天气并实现语音播报)
python获取天气源
Python3爬虫之自动查询天气并实现语音播报一、写在前面
之前写过一篇用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://tool.zzvips.com/t/ip/,打开之后就能看到我们的ip地址和所在地理位置信息了。因为我们可以请求一下这个网页,然后对返回的结果进行一下解析,就能得到我们想要的结果了。代码如下:
|
""" version: python3.5 author: onion site: http://www.cnblogs.com/tm0831/ time: 2019/2/9 16:46 """ import re import 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 , }) # 识别正确返回语音二进制 错误则返回dict if not isinstance (result, dict ): with open ( 'auido.mp3' , 'wb' ) as f: f.write(result) |
其中synthesis方法的各参数含义如下:
有了这个例子,做起来就简单多了,只需要将天气预报的文本传入进去就行了,然后我们可以根据自己喜好改变一下其他参数。代码如下:
|
""" version: python3.5 author: onion site: http://www.cnblogs.com/tm0831/ time: 2019/2/9 17:53 """ from aip import aipspeech # 你的app_id,api_key,secret_key app_id = "" api_key = “" secret_key = "" # 获取语音文件 def get_mp3(text): client = aipspeech(app_id, api_key, secret_key) result = client.synthesis(text, 'zh' , 1 , { "spd" : 4 , "vol" : 6 }) # 识别正确返回语音二进制,错误则返回dict if not isinstance (result, dict ): with open ( 'weather.mp3' , 'wb' ) as f: f.write(result) else : print ( "error!" ) exit() |
三、运行结果
首先是的代码运行的结果,如下图:
然后会生成一个weather.mp3文件:
最后会播放这个mp3文件。
完整代码已上传到github!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持开心学习网。
原文链接:https://www.cnblogs.com/TM0831/p/10357900.html
- python爬虫模块教程(Python爬虫之UserAgent的使用实例)
- python爬虫开源代码(Python实现的文轩网爬虫完整示例)
- python3爬虫实例代码(python3通过selenium爬虫获取到dj商品的实例代码)
- python网络爬虫案例实战(python爬取cnvd漏洞库信息的实例)
- nginx服务器怎么屏蔽爬虫(nginx 防盗链防爬虫配置详解)
- python实现网络爬虫的步骤(Python实现的爬取小说爬虫功能示例)
- python爬取数据总结(python3爬虫学习之数据存储txt的案例详解)
- python 爬虫图形验证码(Python爬虫实现验证码登录代码实例)
- python爬虫第一本书(我用Python抓取了7000 多本电子书案例详解)
- pycharm 爬虫的数据存在哪了(利用PyCharm Profile分析异步爬虫效率详解)
- python获取天气源(Python3爬虫之自动查询天气并实现语音播报)
- python 操作html(Python HTML解析模块HTMLParser用法分析爬虫工具)
- python pyqt 教程(Python+PyQt5实现美剧爬虫可视工具的方法)
- python爬取在线评论(Python爬虫实现爬取百度百科词条功能实例)
- 如何查看python beautifulsoup(Python爬虫beautifulsoup4常用的解析方法总结)
- python3.8爬虫需要的包(python爬取基于m3u8协议的ts文件并合并)
- ()
- 百事大吉蓝底 绿底手机高清壁纸(绿底手机高清壁纸)
- 蓝底证件照怎么制作 证件照换底色 换尺寸快速搞定(蓝底证件照怎么制作)
- 你喜欢足球吗 足球如何点亮世界的(足球如何点亮世界的)
- 不可分鸽是什么梗(不可分鸽是什么梗)
- 古代的鸽子是爱情的象征,并非和平的使者(古代的鸽子是爱情的象征)
热门推荐
- 宝塔面板端口一般设置多少合适(宝塔面板设置了防盗链不生效如何解决)
- linuxmysql安装教程5.7.25学习(linux mysql5.5升级至mysql5.7的步骤与踩到的坑)
- dedecms添加站点(dedecms 栏目列表页链接优化方法)
- python中如何定义带走参数的函数(Python函数定义及传参方式详解4种)
- Visual Studio中 sln 和 suo 文件
- php字符串教程学习(php学习笔记之字符串常见操作总结)
- dedecms如何提高网站权重(dede网站内容页如何调取栏目页标题及关键字组合为seo标题)
- javascript:; 和javascript:void(0);
- python语言支持多态(Python实现多态、协议和鸭子类型的代码详解)
- web服务器搭建自己的网站(单台web服务器如何尽可能的提高网站性能)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9