利用Python制作一个简单的天气播报系统
作者:五包辣条! 发布时间:2023-07-30 17:35:03
标签: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() # 开始执行说话的操作
来源:https://blog.csdn.net/AI19970205/article/details/124696852


猜你喜欢
- mysql-connector-java与mysql版本的对应我们知道版本更新经常带来的问题就是兼容性问题。在编程过程中版本的错误选择很可能
- 使用JS实现在图片上显示左右箭头的翻页代码,预览效果网址:http://www.keleyi.com/keleyi/phtml/picnex
- 把昨天做的高级查询界面完善了一下,支持动态添加多个查询条件、定义逻辑关系,支持整形、浮点、字符串、日期、布尔值、自定义选择列表的录入,通过E
- 前言做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文
- Knockout是一个以数据模型(data model)为基础的能够帮助你创建富文本,响应显示和编辑用户界面的JavaScript类库。任何
- Python 条件语句Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块。可以通过下图来简单了解
- 本文实例为大家分享了python3.6使用SMTP协议发送邮件的具体代码,供大家参考,具体内容如下代码如下:# !/usr/bin/pyth
- Windows 7下IE9安全级别设置项如下表示。(留空代表同前一列的值,无变化)类别属性中中-高高.NET FrameworkXAML 浏
- 官方链接:https://cli.vuejs.org/zh/guide/installation.html1.安装Vue cli3 关于旧版
- 为什么页面出现乱码?为什么数据库里出现乱码?为什么这些乱码的出现几率飘忽不定了?诸如此类的乱码问题困扰了很多WEB开发人员。假如不将这背后的
- 很开心可以和导师阿坚在08gui大赛中一起去完成《fight》的图标设计,在这个过程中真的是受益匪浅!这里我谈一下在这个过程的一些小小心得。
- 在前面的文章中很早有写到关于添加水印的方法,但是过程还是较为复杂,最近发现的这款filestools非标准库其实真正实现添加水印的只要一个函
- 当你要使用data URI scheme的时候,你会发现,虽然他可以使用在绝大多数浏览器上,但无法再IE6和IE7上工作。不过值得庆幸的这一
- 就像我的日志中的地址路径一样,让 index.php?action=one&do=two 变成: ?
- 在广大网友心目中,他们就是中国互联网搜索领域的三驾马车。无论这三家搜索巨头承不承认,在网友眼中总会来将他们进行对比比较。当然,更多时候的比较
- 限制访问可以基于某种权限,某些检查或者为login视图提供不同的位置,这些实现方式大致相同。一般的方法是直接在视图的 request.use
- 效果图基本思路在 OpenCV 中使用VideoCapture方法初始化视频渲染对象创建灰度图像导入预训练模型,识别脸部和人脸标志计算上唇和
- 在进行python的开发过程中一直倡导使用虚拟环境来进行项目隔离,这样不会因为python的包不同而导致各种问题,但是以往为了图省事简单,安
- 前言相信大家应该都有所体会,在目前的软件项目中,都会较多的使用到对文档的操作,用于记录和统计相关业务信息。由于系统自身提供了对文档的相关操作
- 建立资料表:Step1首先开启phpmyadmin,进入wordpress资料库中,并新增一个wp_gbook的资料表与栏位数目8。Step