首页 > 编程语言 >Python天气播报系统

Python天气播报系统

时间:2022-12-30 10:02:33浏览次数:35  
标签:播报 __ city Python text 天气 url weather


工具
​ python3.7

pycharm

pyttsx3:语音播报库

天气数据来源
​ 找寻一个天气网站

Python天气播报系统_开发语言

比如说我们要查询某地的天气,在输入地名后就能看到结果。

Python天气播报系统_ci_02

我们可以看到网站的url会有变化:

Python天气播报系统_python_03

每个城市的天气信息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() # 开始执行说话的操作

 

 

标签:播报,__,city,Python,text,天气,url,weather
From: https://blog.51cto.com/u_15687734/5979114

相关文章

  • 用Python实现BP神经网络(附代码)
    用Python实现BP神经网络(附代码)毕加锁(锁!)今天教大家用Python实现BP神经网络(附代码)用Python实现出来的机器学习算法都是什么样子呢?前两期线性回归及逻辑回归项目已发布(见文......
  • Python八个自动化办公的技巧
    Python八个自动化办公的技巧大家好我是毕加锁(锁!)这篇文章主要介绍了几个Python自动化办公的技巧,可以大大提高工作效率,例如:Word文档doc转docx、Excel文件批量合并、Word......
  • Python导入模块的3种方式
    2022-12-30很多初学者经常遇到这样的问题,即自定义 Python 模板后,在其它文件中用import(或from...import)语句引入该文件时,Python解释器同时如下错误:ModuleNotFoundEr......
  • Python读取文件时出现UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in po
    Python在读取文件时withopen('article.txt')asf:#打开新的文本text_new=f.read()#读取文本数据出现错误:UnicodeDecodeError:'gbk'codeccan'tdecodeby......
  • 【爬虫实战项目】Python爬虫批量下载网易云音乐飙升榜并保存本地(附源码)
    前言今天给大家介绍的是Python爬虫批量下载音乐飙升榜并保存本地,在这里给需要的小伙伴们代码,并且给出一点小心得。首先是爬取之前应该尽可能伪装成浏览器而不被识别出来......
  • 【Python】爬虫笔记-requests.exceptions.ProxyError
    0x01爬虫使用HTTP/HTTPS代理时报故:proxy='127.0.0.1:9743'proxies={'http':'http://'+proxy,'https':'https://'+proxy,}response=requests.ge......
  • python-web:flask框架下的html实例——用户注册页面
    1、submit实现页面跳转,方法为get<h1>用户注册</h1><!--使用get方式提交,method为post/get,action保存提交到哪里--><formmethod="get"action="/do/reg......
  • Python 面向对象
    目录Python面向对象方法没有重载方法的动态性私有属性和私有方法(实现封装)@property装饰器属性和方法命名总结Python面向对象方法没有重载在其他语言中,可以定义多个......
  • Python 面向对象进阶
    目录Python面向对象进阶面向对象三大特征介绍继承语法格式类成员的继承和重写查看类的继承层次结构与根类属性重写__str__()方法Python面向对象进阶面向对象三大特征......
  • [oeasy]python0035_ 整合shell编程_循环_延迟_清屏
    ​ 整合shell编程回忆上次内容用\r可以让输出位置回到行首原位刷新时间如果想要的是大字符效果需要使用figlet但同时还希望能刷新​编辑这可能......