iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >如何使用python实现定时报天气
  • 656
分享到

如何使用python实现定时报天气

2023-06-25 14:06:30 656人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息

小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一.分析爬取目标

这里就不爬取股票的信息,我来爬一个天气预报的信息,然后实现每天定时发送。打开下面的链接就能跳转到中国气象网
Http://www.weather.com.cnnn/

如何使用python实现定时报天气

点击温度那个位置就可以进入下面的图

如何使用python实现定时报天气

我们可以看到7天的天气和8-15天的天气,再往后对我们来说就没必要了。我们查看七日的天气预报,直接爬11日的天气,鼠标右键->检查->Network->刷新网页->查看列表第一个,再点击preview

如何使用python实现定时报天气

可以看到数据在html里面,然后回到element

如何使用python实现定时报天气

可以发现,温度数据放在<p class="tem">之下。“多云”所在的位置是<p title="晴" class="wea">晴</p>

如何使用python实现定时报天气

import requestsheaders = {    'user-agent': 'Mozilla/5.0 (windows NT 6.1; Win64; x64) AppleWEBKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}# 封装headers#这里对应的是我选的城市,可以换自己所在城市url = 'http://www.weather.com.cn/weather/101010100.shtml'# 把URL链接赋值到变量url上res = requests.get(url, headers=headers)# 发送requests请求,并把响应的内容赋值到变量res中。print(res.text)# 打印出res对象的网页源代码print(res.status_code)# 检查响应状态是否正常

看结果可以看到是响应是正常的,但是出现了乱码。但是莫慌。加上一句res.encoding='utf-8'就行了。

如何使用python实现定时报天气

接下来就可以写完整的爬取信息的代码了

import requestsfrom bs4 import BeautifulSoupheaders={'user-agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.87 Safari/537.36'}#封装headersurl='http://www.weather.com.cn/weather/101010100.shtml'#把URL链接赋值到变量url上res=requests.get(url,headers=headers)#发送requests请求,并把响应的内容赋值到变量res中res.encoding='utf-8'bsdata=BeautifulSoup(res.text,'html.parser')#使用bs模块解析获取到的数据data_temperature= bsdata.find(class_='tem')#使用find()取出天气的温度数据data_weather= bsdata.find(class_='wea')#使用find()取出天气的文字描述print(data_temperature.text)#取出变量data_temperature中的字符串内容,并打印print(data_weather.text)#取出变量data_weather中的字符串内容,并打印

可以成功的得到需要的数据。

如何使用python实现定时报天气

其实最难的不是爬虫,爬这种信息新手应该都会,接下里才是重头戏。

二.信息的发送

如果我们想要实现发送邮件,这里以qq邮件为例要经过以下的步骤:

  • 连接邮件服务器

  • 使用邮箱账号密码登录

  • 填写收件人,主题,正文等

  • 发送邮件

所以连接服务器要用到用到smtplib库,填写主题和撰写正文,需要用到email库(Python真的是yyds)

1.连接服务器

SMTP代表简单邮件传输协议,相当于一种计算机之间发邮件的约定

smtplib是不需要安装的,smtplib是python的一个内置库,有兴趣的小伙伴可以看看官方文档

看下面的代码

import smtplibmailhost='smtp.qq.com'#把qq邮箱的服务器地址赋值到变量mailhost上,地址需要是字符串的格式。qqmail = smtplib.SMTP()#实例化一个smtplib模块里的SMTP类的对象,这样就可以SMTP对象的方法和属性了qqmail.connect(mailhost,25)#连接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号

**mailhost=‘smtp.qq.com'**这句是qq邮箱的服务器地址,这个是可以查得到的

用SMTP对象的connect()方法连接服务器,第一个参数是获取到的服务器地址,第二个参数是SMTP端口号——25。端口号的选择不是唯一的,但是25是一个最简单、最基础的端口号,所以我们填25。

2.获取账号和密码

此密码非彼密码,这个密码需要我们去到这里获取:https://mail.qq.com/,登录你的邮箱。然后点击位于顶部的【设置】按钮,选择【账户设置】。

如何使用python实现定时报天气

下拉到这个位置

如何使用python实现定时报天气

点击开启第一个,然后得到授权码,如果以前获取过但是忘了,就需要发送短信重新获取,这个码一定不要外漏!!!

如何使用python实现定时报天气

import smtplibmailhost='smtp.qq.com'#把qq邮箱的服务器地址赋值到变量mailhost上qqmail = smtplib.SMTP()#实例化一个smtplib模块里的SMTP类的对象,这样就可以SMTP对象的方法和属性了qqmail.connect(mailhost,25)#连接服务器,第一个参数是服务器地址,第二个参数是SMTP端口号。sender = input('请输入你的邮箱:')#获取邮箱账号passWord = input('请输入你的密码:')#获取邮箱密码qqmail.login(sender,password)#登录邮箱,第一个参数为邮箱账号,第二个参数为邮箱密码receiver=input('请输入收件人的邮箱:')#获取收件人的邮箱

所填密码就是刚才获取的授权码

3.填写主题和撰写正文

在这里就需要用到email库。

from email.mime.text import MIMETextfrom email.header import Headercontent=input('请输入邮件正文:')#输入你的邮件正文message = MIMEText(content, 'plain', 'utf-8')#实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码subject = input('请输入你的邮件主题:')#用input()获取邮件主题  message['Subject'] = Header(subject, 'utf-8')

我们还需要引入了email库中的MIMEText模块和Header模块
最后一行代码:在等号的右边,是实例化了一个Header邮件头对象,该对象需要写入两个参数,分别是邮件主题和编码,然后赋值给等号左边的变量message[‘Subject'],message[‘Subject']就代表着根据MIMEText类里面的Subject的属性名取到该属性

代码有注释还不明白的话可以去看看文档,

4.发送邮件和退出邮箱

将前面的代码整合以下

from email.mime.text import MIMETextfrom email.header import Header#引入Header和MIMEText模块content=input('请输入邮件正文:')#输入你的邮件正文message = MIMEText(content, 'plain', 'utf-8')#实例化一个MIMEText邮件对象,该对象需要写进三个参数,分别是邮件正文,文本格式和编码subject = input('请输入你的邮件主题:')#用input()获取邮件主题message['Subject'] = Header(subject, 'utf-8')qqmail.sendmail(sender, receiver, message.as_string())qqmail.quit()#退出邮箱

sendmail() 发送邮件,括号里面有三个参数,第1个是发件人的邮箱地址,第2个是收件人的邮箱地址,第3个是正文,但必须是字符串格式,所以用as_string()函数转换了一下。

但是我们希望发送成功后能显示“邮件发送成功”,失败的时候能提示我们“邮件发送失败”,可以使用try语句来实现。

try:    qqmail.sendmail(sender, receiver, message.as_string())    print ('邮件发送成功')except:    print ('邮件发送失败')qqmail.quit()

三.定时发送

关于时间,其实Python有两个内置的标准库——time和datetime,但是我们不用,诶,就是玩,我们可以用第三方库schedule其实是有原因的:对于我们需要的定时功能,time和datetime当然能实现,但操作逻辑会相对复杂;而schedule就是可以直接解决定时功能,代码比较简单,这是我们选择schedule的原因。
官方文档链接:https://pypi.org/project/schedule/
根据文档我们做一个每3秒运行一次的程序

import scheduleimport time#引入schedule和time模块def job():    print("Working in progress...")#定义一个叫job的函数,函数的功能是打印'I'm working...'schedule.every(3).seconds.do(job)        while True:    schedule.run_pending()    time.sleep(1)

也可以设置在某个时间发送,用法很多,这里就不展开。最后把这些代码全部合并整合一下,下面看效果

四.效果

如何使用python实现定时报天气

这里我定的下午三点四十六,然后发送成功,我打开我的邮箱确实能收到

如何使用python实现定时报天气

这个功能我放在服务器上用了很久了,爬一些平时自己必看的信息,然后发送,减少了自己被其他东西吸引注意力的几率。

以上是“如何使用python实现定时报天气”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网Python频道!

--结束END--

本文标题: 如何使用python实现定时报天气

本文链接: https://www.lsjlt.com/news/305447.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何使用python实现定时报天气
    小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息...
    99+
    2023-06-25
  • 使用python实现定时报天气的示例代码
    前言 如果你和我一样偶尔看看股票,看看自己关注的股票是涨了还是跌了,或者想快速获取到想看的头条新闻,我们不必把过多的注意力放在去寻找上面,我们只需要让爬虫程序每天自动为你发送你想要了...
    99+
    2024-04-02
  • vue使用高德地图实现实时定位天气预报功能
    目录JSAPI 的加载使用 JSAPI Loader (推荐)JSAPI key和安全密钥的使用项目代码步骤:1、在index.html页面body中添加密钥2、安装@amap/am...
    99+
    2024-04-02
  • 用Python定时发送天气邮件
    效果如图  一、获取天气 def getWeather1(city): try: appid = os.environ["TIANQI_APPID...
    99+
    2024-04-02
  • python如何实现将天气预报可视化
    这篇文章将为大家详细讲解有关python如何实现将天气预报可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。结果展示其中:红线代表当天最高气温,蓝线代表最低气温,最高气温点上的标注为当天的天气情况。如果...
    99+
    2023-06-22
  • python怎么实现播报天气预报
    要实现播报天气预报,可以使用Python的语音合成库,如pyttsx3或gTTS。下面是使用pyttsx3库的示例代码:```pyt...
    99+
    2023-08-31
    python
  • 如何使用golang的Websocket开发实时天气预报功能
    如何使用Golang的WebSocket开发实时天气预报功能引言:天气预报是人们日常生活中的重要信息之一,实时的天气预报能够帮助人们做出更好的生活规划。本文将介绍如何使用Golang的WebSocket开发一个实时的天气预报功能,并提供具体...
    99+
    2023-12-18
    websocket 实时天气预报 Golang (Go语言)
  • 怎么用Python定时发送天气邮件
    这篇文章主要介绍“怎么用Python定时发送天气邮件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Python定时发送天气邮件”文章能帮助大家解决问题。效果如图 一、获取天气def&...
    99+
    2023-06-29
  • Python怎么实现天气预报系统
    这篇“Python怎么实现天气预报系统”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python怎么实现天气预报系统”文章吧...
    99+
    2023-07-04
  • Vue实现天气预报小应用
    这是本人在自学vue框架时候所模仿的一个网站,可以查询一些城市的天气情况,大家可以看看: html代码 <!DOCTYPE html> <html lang="...
    99+
    2024-04-02
  • 如何使用Python和Prometheus跟踪天气
    如何使用Python和Prometheus跟踪天气,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。创建自定义 Prometheus 集成以跟踪***的云端提供商:...
    99+
    2023-06-16
  • Python实战之天气预报系统的实现
    目录前言一、前期准备二、代码展示三、效果展示前言 鼎鼎大名的南方城市长沙很早就入冬了,街上各种大衣,毛衣,棉衣齐齐出动。 这段时间全国各地大风呜呜地吹,很多地方断崖式降温。 虽然前几...
    99+
    2022-12-19
    Python天气预报系统 Python天气预报
  • Python+xlwings如何制作天气预报表
    这篇文章主要为大家分析了Python+xlwings如何制作天气预报表的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随小编一起来看看,下面跟着小编一起深入学习“Python+xlwings如何制作天气...
    99+
    2023-06-28
  • 使用php开发Websocket,打造实时天气预报功能
    使用PHP开发WebSocket,打造实时天气预报功能前言WebSocket是一种网络通信协议,它可以在客户端和服务器之间建立持久连接,实现双向的实时通信。在Web开发中,WebSocket被广泛应用于即时聊天、实时推送、实时数据更新等场景...
    99+
    2023-12-18
    天气预报 PHP websocket
  • 怎么用jQuery ajax实现天气预报
    这篇文章主要介绍“怎么用jQuery ajax实现天气预报”,在日常操作中,相信很多人在怎么用jQuery ajax实现天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Android自定义View实现天气预报折线图
    本文实例为大家分享了Android自定义View画天气预报折线图的具体代码,供大家参考,具体内容如下 效果图如下: 刚开始尝试用第三方画曲线的框架来画效果图,后来发现曲线间的阴影当...
    99+
    2024-04-02
  • 利用Java实现天气预报播报功能
    目录实验代码WeatherState.javaWeather.javaWeatherForecast.javaCloudyLittleState.javaCloudyDayState...
    99+
    2024-04-02
  • Linux 命令行下如何实现浏览天气预报
    这篇文章主要介绍“Linux 命令行下如何实现浏览天气预报”,在日常操作中,相信很多人在Linux 命令行下如何实现浏览天气预报问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux 命令行下如何实现浏览天...
    99+
    2023-06-12
  • vue使用webSocket更新实时天气的方法
    目录前言关于 webSocket 的操作及示例:webSocket1.关于 webSocket2.与 AJAX 轮的区别3.webSocket 事件4. 一个简单的示例天气更新图片素...
    99+
    2024-04-02
  • 如何用Python爬取天气数据
    本篇内容主要讲解“如何用Python爬取天气数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用Python爬取天气数据”吧!一、[知识点]:  ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作