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

实现步骤

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

更多精彩内容,可点击进入Python日常小操作专栏查看

Python Requests实现天气预报相关推荐

  1. python爬虫教程:如何用40行Python代码实现天气预报和每日鸡汤推送功能

    这篇文章主要介绍了通过40行Python代码实现天气预报和每日鸡汤推送功能,代码简单易懂,非常不错具有一定的参考借鉴价值 ,需要的朋友可以参考下 情人节刚过去几天,但是这和我们程序员有什么关系呢,对我 ...

  2. 浅谈python+requests接口自动化框架

    为什么要做接口自动化框架 1.业务与配置的分离 2.数据与程序的分离:数据的变更不影响程序 3.有日志功能,实现无人值守 4.自动发送测试报告 5.不懂编程的测试人员也可以进行测试 正常接口测试的流程 ...

  3. python requests 爬取数据

    python requests 爬取数据 import requests from lxml import etree import time import pymysql import json h ...

  4. Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常

    Python requests 多线程抓取 出现HTTPConnectionPool Max retires exceeded异常 参考文章: (1)Python requests 多线程抓取 出现H ...

  5. (转)python requests 高级用法 -- 包括SSL 证书错误的解决方案

    (转)python requests 高级用法 -- 包括SSL 证书错误的解决方案 参考文章: (1)(转)python requests 高级用法 -- 包括SSL 证书错误的解决方案 (2)ht ...

  6. python+requests接口自动化测试框架实例详解教程(米兔888)

    来源:https://my.oschina.net/u/3041656/blog/820023 源码:https://pan.baidu.com/s/1lgIEToiczTvvjy--p-N20g 提 ...

  7. python requests 示例_Python Requests模块的简单示例

    这篇文章主要为大家详细介绍了Python Requests模块的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  8. python+requests+re匹配抓取猫眼上映电影信息

    python+requests抓取猫眼中上映电影,re正则匹配获取对应电影的排名,图片地址,片名,主演及上映时间和评分 import requests import re, json def get_ ...

  9. Python requests 笔记(一)

    Python requests 添加 HTTP请求头 抓取二进制文件 上传文件 设置Cookie 设置同一个会话(Session) 使用代理 添加 HTTP请求头 需要设置 get方法的headers ...

最新文章

  1. 074_JSON.stringify()
  2. 查询数据表结构并查出结构的结构信息
  3. LiveVideoStack线上分享第三季(十四):FLV封装格式介绍及解析
  4. Linux C 时间函数
  5. linux里hba状态_Windows和Linux系统查看HBA卡wwn号的方法 | 系统之家官网
  6. Linux下的free命令
  7. 在使用SPSite对象时容易发生内存泄漏
  8. 教你同时分析DPD多个单号的物流信息
  9. 从无到有 win10建window xp虚拟机之总结
  10. 5个免费邮箱,10分钟临时邮箱,一定能用,持续更新
  11. 怎样用捷速PDF编辑器修改PDF文档
  12. 用扫码枪收款钱到哪里_为何微信设置了密码,超市也能用扫码枪能将钱扫走?真要注意...
  13. 十年磨一剑:大众凭借电池的革命性突破超越特斯拉
  14. Android2017Google IO
  15. BPMN2.0协议解析
  16. 决策树的三种常见算法
  17. 戴尔笔记本提示“您已插入低瓦数电源适配器 在bios设置中可以禁用此警告”
  18. MyBatis(一)MyBatis概述
  19. 蓝桥杯算法训练-强力党逗志芃
  20. mysql出现[Warning] Host name ‘hn.kd.ny.adsl‘ could not be resolved: Name or service not known

热门文章

  1. 什么是DAOstack
  2. 微信的原创保护机制到底是如何实现的?
  3. “网络相亲”三大纪律八项注意
  4. FAQ0115 AT32使用AC6编译器注意事项
  5. 难译 | windbg 乐趣之道(下)
  6. D. 1.绿纹龙的森林游记
  7. Mac下编写C或C++
  8. 分享添加字幕最简单的方法 视频制作超简单
  9. 从还珠格格到延禧攻略,不变的是什么?
  10. 武魂java_ArrayLIst的使用