Python天气语音播报小助手


Posted in Python onSeptember 25, 2021

导语​

马上就要迎来国庆小长假了~激不激动,兴不兴奋!​

Python天气语音播报小助手

那今年国庆:天气怎么样?能不能出门逛街?能不能出去旅游?

……

来来来,木木子为你整理好啦!​​这个假期,你那里的天气如何?

Python天气语音播报小助手

Python天气语音播报小助手

正文

旅游出门就要挑个好的天气!下雨天哪儿哪儿都不舒服。

今天小编带大家写一款Python天气语音播报小助手!

环境安装:Python3.6、pycharm2021、及自带的模块等。

pip install -i https://pypi.douban.com/simple/ requests 
 
pip install -i https://pypi.douban.com/simple/ opencv-python

​主要分为三大部分:

(1)获取每日天气情况:

def get_weather():
    url = 'http://www.weather.com.cn/weather/101290101.shtml'
    response = requests.get(url)
    response.encoding = 'utf-8'
    response = response.text  # 获取页面
    html = etree.HTML(response)
    day_weather = '天气状况:' + html.xpath('//*[@id="7d"]/ul/li[1]/p[1]/text()')[0] + '\n'  # 获取天气,白天的天气
    high = html.xpath('//*[@id="7d"]/ul/li[1]/p[2]/span/text()')
    low = html.xpath('//*[@id="7d"]/ul/li[1]/p[2]/i/text()')  # 获取对应的两个温度
    # 因为页面在晚上会有小变化,所以使用条件语句,来排除因变化引起的bug
    if high == []:
        day_temperature = '室外温度:' + low[0] + '\n'
    else:
        day_temperature = '室外温度:' + low[0].replace('℃', '') + '~' + high[0] + '℃\n'  # 获取温度
    # 获取两个风向
    wind_1 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/em/span[1]/@title')
    wind_2 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/em/span[2]/@title')
    # 因为有时候,会出现两个风向是同一个风向的情况,所以使用条件语句排除
    if wind_2 == []:
        wind = wind_1[0] + '\n'
    elif wind_1[0] == wind_2[0]:
        wind = wind_1[0] + '\n'
    else:
        wind = wind_1[0] + '转' + wind_2[0] + '\n'
    # 因为风级有时候会出现“<",语音的时候会认为是爱心符号,所以使用替换,改为文字”低于“
    wind_3 = html.xpath('//*[@id="7d"]/ul/li[1]/p[3]/i/text()')[0].replace('<', '低于').replace('>', '高于')
    day_wind = '风向情况:' + wind + wind_3 + '\n'  # 获取风向及风级
    return day_weather, day_temperature, day_wind

(2)获取播报的高考时间:

def get_time():
    a = datetime.datetime.now()  # 实施时间
    y = str(a.year)
    m = str(a.month)
    d = str(a.day)  # 转换为字符串,便于打印
    time = y + '年' + m + '月' + d + '日' + '\n'
    b = datetime.datetime(2021, 6, 7)  # 自己设置的高考时间
    count_down = (b - a).days  # 高考倒计时
    return time, count_down

(3)设置播报每日鸡汤文字:

def get_content():
    url = 'http://open.iciba.com/dsapi/'  # 网上找的API
    response = requests.get(url=url)
    json_s = json.loads(response.text)
    jitang = json_s.get("content") + '\n'  # 每日鸡汤
    translation = json_s.get("note") + '\n'  # 中文翻译
    image_url = json_s.get("fenxiang_img")  # 图片链接
    return jitang, translation, image_url

(4)语音小助手依次顺序播报:

def main():
    time, count_down = get_time()
    day_weather, day_temperature, day_wind = get_weather()
    jitang, translation, image_url = get_content()
    count_down = '距离高考还有{}天,你准备好了吗?'.format(count_down) + '\n'
    a = '下面为您播报今日天气状况\n'
    b = '每日一句\n'
    time = '今天是' + time
    weather = day_weather + day_temperature + day_wind
    content = jitang + translation
    text = time + count_down + a + weather + b + content  # 语音内容
    voice = pyttsx3.init()  # 初始化
    # rate = voice.getProperty('rate')
    voice.setProperty('rate', 150)  # 语速,范围在0-200之间
    voice.setProperty('volume', 1.0)  # 范围在0.0-1.0之间
    voice.say(text)  # 语音内容
    voice.runAndWait()
    cap = cv2.VideoCapture(image_url)  # 展示图片
    if(cap.isOpened()):
        ret, img = cap.read()
        my_image = cv2.resize(img, dsize=None, fx=0.5, fy=0.5)
        cv2.imshow("You will succeed in the end", my_image)
        cv2.waitKey()
    print(time, weather, content)

效果如下:

Python天气语音播报小助手

​其实是语音播报的,but这只能截图效果将就着看叭~哈哈哈!!!

Python天气语音播报小助手

总结

好啦!这是一款实时播报、高考、天气预报、每日鸡汤的三合一语音智能小助手!想拥有嘛?

记得三连哦~mua 你们的支持是我最大的动力!

Python天气语音播报小助手

到此这篇关于Python天气语音播报小助手的文章就介绍到这了,更多相关Python 语音播报 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中利用Scipy包的SIFT方法进行图片识别的实例教程
Jun 03 Python
python if not in 多条件判断代码
Sep 21 Python
Python抓取手机号归属地信息示例代码
Nov 28 Python
python中使用正则表达式的后向搜索肯定模式(推荐)
Nov 11 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
Python替换月份为英文缩写的实现方法
Jul 15 Python
django项目简单调取百度翻译接口的方法
Aug 06 Python
Python中关于浮点数的冷知识
Sep 22 Python
Windows下Pycharm远程连接虚拟机中Centos下的Python环境(图文教程详解)
Mar 19 Python
解决python打开https出现certificate verify failed的问题
Sep 03 Python
python利用xpath爬取网上数据并存储到django模型中
Feb 26 Python
python中的None与NULL用法说明
May 25 Python
用python基于appium模块开发一个自动收取能量的小助手
Python实现打乒乓小游戏
Python 类,对象,数据分类,函数参数传递详解
Sep 25 #Python
Python实现简单的俄罗斯方块游戏
Python实现滑雪小游戏
利用python实时刷新基金估值(摸鱼小工具)
Sep 15 #Python
Python极值整数的边界探讨分析
Sep 15 #Python
You might like
PHP4实际应用经验篇(7)
2006/10/09 PHP
一个分页的论坛
2006/10/09 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
在textarea中显示html页面的javascript代码
2007/04/20 Javascript
List all the Databases on a SQL Server
2007/06/21 Javascript
菜鸟javascript基础资料整理3 正则
2010/12/06 Javascript
JS控制阿拉伯数字转为中文大写示例代码
2013/09/04 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
2015/12/11 Javascript
jquery日历插件datepicker用法分析
2016/01/22 Javascript
JavaScript的字符串方法汇总
2016/07/31 Javascript
第一次接触神奇的Bootstrap
2016/10/14 Javascript
原生的强大DOM选择器querySelector介绍
2016/12/21 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
详解在vue-cli项目中安装node-sass
2017/06/21 Javascript
解决Vue.js父组件$on无法监听子组件$emit触发事件的问题
2018/09/12 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
ES6基础之数组和对象的拓展实例详解
2019/08/22 Javascript
[02:19]2018年度DOTA2最佳核心位选手-完美盛典
2018/12/17 DOTA
Python 将RGB图像转换为Pytho灰度图像的实例
2017/11/14 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Django model update的多种用法介绍
2020/03/28 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
满月酒主持词
2014/03/27 职场文书
外国人聘用意向书
2014/04/01 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
班训口号大全
2014/06/18 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
独生子女证明范本
2015/06/19 职场文书
四年级作文之植物
2019/09/20 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫
Python使用plt.boxplot()函数绘制箱图、常用方法以及含义详解
2022/08/14 Python