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​

实现步骤

  1. 设置网址和请求头
  2. 向网址发送请求并获取数据
  3. 筛选并过滤掉无用信息(如空格、不重要字符等)
  4. 把文字转化为语音

代码实现

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 Requests实现天气预报_HTML

Python实现天气预报