Python Requests实现天气预报
Python Requests实现天气预报
- 前提条件
- 相关介绍
- 实验环境
- 天气预报
-
- 目标网址
- 实现步骤
- 代码实现
- 输出结果
前提条件
- 熟悉Python
- 熟悉Requests
- 熟悉XPath
- 熟悉Pyttsx3
相关介绍
- Python是一种跨平台的计算机程序设计语言。是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越多被用于独立的、大型项目的开发。
- Requests是一个很实用的Python HTTP客户端库。
- Lxml是XML和HTML的解析器,其主要功能是解析和提取XML和HTML中的数据;lxml和正则一样,也是用C语言实现的,是一款高性能的python HTML、XML解析器,也可以利用XPath语法,来定位特定的元素及节点信息。
- XPath 是一门在 XML 文档中查找信息的语言, XSLT 中的主要元素,XQuery 和 XPointer 均构建于 XPath 表达式之上。
- Pyttsx3是 Python 中的文本到语音转换库。
实验环境
- Python 3.x (面向对象的高级语言)
- Requests(Python第三方库)
pip3 install requests
- Lxml(python第三方库)
pip3 install lxml
- Pyttsx3(Python第三方库)
pip3 install pyttsx3
天气预报
目标网址
https://www.tianqi.com
实现步骤
- 设置网址和请求头
- 向网址发送请求并获取数据
- 筛选并过滤掉无用信息(如空格、不重要字符等)
- 把文字转化为语音
代码实现
import pyttsx3 # 语音播放库import requestsfrom lxml import etree# 城市city = 'shenzhen'# 目标网址url = 'https://www.tianqi.com/%s/'%city# 请求头,伪装成浏览器headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36' }# 向网址发送请求并获取数据response = requests.get(url=url,headers=headers)# print(response.text)# 筛选信息data = etree.HTML(response.text)weather_list = data.xpath('//dl[@class="weather_info"]//text()')# print(weather_list)# 将主要的信息拼在一起,即拼接成一个字符串weather_text = ''for text in weather_list: weather_text +=text# 用空格替换掉字符weather_text = weather_text.replace('[切换城市]',' ')print(weather_text)# 初始化一个说话对象weather = pyttsx3.init()# 设置说话内容weather.say(weather_text)# 开始执行weather.runAndWait()
输出结果
Python实现天气预报
更多精彩内容,可点击进入Python日常小操作专栏查看