Python Requests实现天气预报
原创
©著作权归作者所有:来自51CTO博客作者wx63dcd9d7dd8a8的原创作品,请联系作者获取转载授权,否则将追究法律责任
Python Requests实现天气预报
- 前提条件
- 相关介绍
- 实验环境
- 天气预报
- 目标网址
- 实现步骤
- 代码实现
- 输出结果
前提条件
相关介绍
- 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 requests
from 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实现天气预报