返回顶部
首页 > 资讯 > 后端开发 > Python >python定时利用QQ邮件发送天气预报的实例
  • 733
分享到

python定时利用QQ邮件发送天气预报的实例

邮件发送天气预报实例 2022-06-04 19:06:22 733人浏览 泡泡鱼

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

摘要

大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1、首先利用request库去请求数据,天气预报使用的是和风天气的api(www.heweather.com/

大致介绍

好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下

1、首先利用request库去请求数据,天气预报使用的是和风天气的api(www.heweather.com/douments/api/s6/weather-forecast)

2、利用Python的jinja2模块写一个html模板,用于展示数据

3、python的email构建邮件,smtplib发送邮件

4、最后使用crontab定时执行python脚本

涉及的具体知识可以去看文档,本文主要就是解释代码的结构

和风天气API

API没什么好说的,利用requests库去请求数据,然后提取出数据,使用方法和风天气API说的很详尽了

查看图片

HTML模板

利用jinja2在和脚本同级的目录写一个HTML模板

查看图片

写好模板,我们就需要在脚本中引入他,并给他传递数据

查看图片

email构建邮件,smtplib发送邮件

注意:

1、首先需要开启QQ邮箱的SMTP服务,一般端口是465

2、在构建邮件和发送邮件时都需要接受者的邮箱,但是他们需要的数据格式是不同的,在构建邮件时,接受者邮箱需要转换成一个string,而在发送邮件时,接受者邮箱必须是一个list

查看图片

crontab定时发送邮件

我想对crontab说:

查看图片

这个crontab真的是大坑,坑了我好久,坑的我不行不行的

既然你们诚心诚意的发问了,那我就大发慈悲的告诉你们是那些坑吧

1、在crontab中要写绝对路径,包括python3,查看python的安装位置:

查看图片

2、如果脚本中涉及了中文,记得一定要写export LANG="****",如果不知道属性是什么:

查看图片

然后 crontab -e写入类似下面的代码:

查看图片

表示在每晚的22:00执行脚本,具体的crontab语法可以自行搜索

邮件:

查看图片

ok!

源代码:


#!/usr/local/bin/python3
# coding=utf-8

import requests
import JSON
import smtplib
import jinja2
import os.path as pth
import time
from email.mime.text import MIMEText
from email.header import Header

HEFEN_D = pth.abspath(pth.dirname(__file__))
LOCATioN = '北京'
ORIGINAL_URL = 'https://free-api.heweather.com/s6/weather/forecast?parameters'
TO = ['8*******@qq.com', '2********@qq.com']


def sendEmail(content, title, from_name, from_address, to_address, serverport, serverip, username, passWord):
 msg = MIMEText(content, _subtype='html',_charset='utf-8')
 msg['Subject'] = Header(title, 'utf-8')
 # 这里的to_address只用于显示,必须是一个string
 msg['To'] = ','.join(to_address)
 msg['From'] = from_name
 try:
  s = smtplib.SMTP_SSL(serverip, serverport)
  s.login(username, password)
  # 这里的to_address是真正需要发送的到的mail邮箱地址需要的是一个list
  s.sendmail(from_address, to_address, msg.as_string())
  print('%s----发送邮件成功' % time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
 except Exception as err:
  print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
  print(err)

def get_data():
 new_data = []
 parametres = {
  'location': LOCATION,
  'key': '************ ', #注册和风天气会给你一个KEY
  'lang': 'zh',
  'unit': 'm'
 }

 try:
  response = requests.get(ORIGINAL_URL,params=parametres)
  r = json.loads(json.dumps(response.text,ensure_ascii=False,indent=1))
  r = json.loads(response.text)
 except Exception as err:
  print(err)

 weather_forecast = r['HeWeather6'][0]['daily_forecast']
 for data in weather_forecast:
  new_obj = {}
  # 日期
  new_obj['date'] = data['date']
  # 日出时间
  new_obj['sr'] = data['sr']
  # 日落时间
  new_obj['ss'] = data['ss']
  # 最高温度
  new_obj['tmp_max'] = data['tmp_max']
  # 最低温度
  new_obj['tmp_min'] = data['tmp_min']
  # 白天天气状况描述
  new_obj['cond_txt_d'] = data['cond_txt_d']
  # 风向
  new_obj['wind_dir'] = data['wind_dir']
  # 风力
  new_obj['wind_sc'] = data['wind_sc']
  # 降水概率
  new_obj['pop'] = data['pop']
  # 能见度
  new_obj['vis'] = data['vis']

  new_data.append(new_obj)
 return new_data



def render_mail(data):
 env = jinja2.Environment(
   loader = jinja2.FileSystemLoader(HEFEN_D)
  )
 return env.get_template('hefentianqi.html').render({'data': data})

def main():
 config = {
 "from": "2********@qq.com",
 "from_name": '预报君',
 "to": TO,
 "serverip": "smtp.qq.com",
 "serverport": "465",
 "username": "2*******@qq.com",
 "password": "**********" #QQ邮箱的SMTP授权码
 }

 title = "别走,我给你看个宝贝"

 data = get_data()
 body = render_mail(data)
 sendEmail(body, title, config['from_name'], config['from'], config['to'], config['serverport'], config['serverip'], config['username'], config['password'])


main()

以上这篇python定时利用QQ邮件发送天气预报的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: python定时利用QQ邮件发送天气预报的实例

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

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

猜你喜欢
  • python定时利用QQ邮件发送天气预报的实例
    大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1、首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.com/...
    99+
    2022-06-04
    邮件发送 天气预报 实例
  • 用Python定时发送天气邮件
    效果如图  一、获取天气 def getWeather1(city): try: appid = os.environ["TIANQI_APPID...
    99+
    2024-04-02
  • 怎么用Python定时发送天气邮件
    这篇文章主要介绍“怎么用Python定时发送天气邮件”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用Python定时发送天气邮件”文章能帮助大家解决问题。效果如图 一、获取天气def&...
    99+
    2023-06-29
  • python 发送qq邮件的示例
    目录发送纯文本qq邮件发送HTML格式邮件发送HTML格式邮件带图片发送带附件邮件python自带了两个模块smtplib和email用于发送邮件。smtplib模块主要负责发送邮件...
    99+
    2024-04-02
  • python3利用smtplib通过qq邮箱发送邮件方法示例
    前言 本文主要给大家介绍了关于python3 smtplib通过qq邮箱发送邮件的相关内容, smtplib模块是smtp简单邮件传输协议客户端的实现,为了通用性,有时候发送邮件的时候要带附件或图片,用em...
    99+
    2022-06-04
    示例 发送邮件 邮箱
  • 利用Python实现邮件发送
    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是⼀一组⽤用于由源地址到⽬目的地址传送邮件的规则,由它来控制信件的中转⽅方式。python的smtplib提供了了⼀一种很⽅方便便的途径发送电⼦子邮...
    99+
    2023-05-14
    Python 邮件发送
  • 使用python实现定时报天气的示例代码
    前言 如果你和我一样偶尔看看股票,看看自己关注的股票是涨了还是跌了,或者想快速获取到想看的头条新闻,我们不必把过多的注意力放在去寻找上面,我们只需要让爬虫程序每天自动为你发送你想要了...
    99+
    2024-04-02
  • Python使用QQ邮箱发送Email的方法实例
    前言 其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能。 使用到的模块有smtplib和email这个两个模块,关于这两个模块的方法就不多说了。不了解的朋友们可以查看这...
    99+
    2022-06-04
    实例 邮箱 方法
  • Python实现定时发送监控邮件
    目录一、自动定时任务运行详情二、开启POP3/SMTP服务三、发送邮件1 导入库2 设置邮件内容3 添加附件4 发送邮件5 邮件发送效果四、设置定时任务1 设置定时任务的具体步骤2 ...
    99+
    2024-04-02
  • SpringBoot实现发送QQ邮件的示例代码
    目录配置发送邮件1、引入SpringBoot的Mail依赖2、配置邮箱发送的Bean3、发送测试邮件4、查看效果应用启动&停止邮件通知总结在跑个人应用的时候,想引入一个通知机...
    99+
    2024-04-02
  • 如何使用python实现定时报天气
    小编给大家分享一下如何使用python实现定时报天气,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一.分析爬取目标这里就不爬取股票的信息,我来爬一个天气预报的信息...
    99+
    2023-06-25
  • node实现定时发送邮件的示例代码
    本文介绍了node实现定时发送邮件的示例代码,分享给大家,具体如下: 定时发送,可做提醒使用 nodemailer nodemailer 是一款简单易用的基于于SMTP协议(或 Amazon SES)...
    99+
    2022-06-04
    示例 发送邮件 代码
  • Express实现定时发送邮件的示例代码
    在开发中我们有时候需要每隔 一段时间发送一次电子邮件,或者在某个特定的时间进行发送邮件,无需手动去操作,基于这样的情况下我们需要用到了定时任务,一般可以写个定时器,来完成相应的需求,...
    99+
    2023-05-15
    Express定时发送邮件 Express发送邮件 Express定时
  • 如何使用golang的Websocket开发实时天气预报功能
    如何使用Golang的WebSocket开发实时天气预报功能引言:天气预报是人们日常生活中的重要信息之一,实时的天气预报能够帮助人们做出更好的生活规划。本文将介绍如何使用Golang的WebSocket开发一个实时的天气预报功能,并提供具体...
    99+
    2023-12-18
    websocket 实时天气预报 Golang (Go语言)
  • 使用php开发Websocket,打造实时天气预报功能
    使用PHP开发WebSocket,打造实时天气预报功能前言WebSocket是一种网络通信协议,它可以在客户端和服务器之间建立持久连接,实现双向的实时通信。在Web开发中,WebSocket被广泛应用于即时聊天、实时推送、实时数据更新等场景...
    99+
    2023-12-18
    天气预报 PHP websocket
  • Python怎么实现定时发送监控邮件
    这期内容当中小编将会给大家带来有关Python怎么实现定时发送监控邮件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷...
    99+
    2023-06-22
  • Echarts利用多X轴实现七天天气预报效果的示例代码
    目录UI设计图Echarts示例效果前言示例代码最终效果UI设计图 Echarts示例效果 前言 对于UI给出的设计图,各个气象网站都有类似的效果,实现方式大可归为两种: ...
    99+
    2024-04-02
  • vue使用高德地图实现实时定位天气预报功能
    目录JSAPI 的加载使用 JSAPI Loader (推荐)JSAPI key和安全密钥的使用项目代码步骤:1、在index.html页面body中添加密钥2、安装@amap/am...
    99+
    2024-04-02
  • Python利用Flask-Mail实现发送邮件详解
    目录前言qq邮箱开启smtp服务Flask-Mail的安装Flask-MailQQ邮箱的配置Flask-Mail的使用前言 在开发过程中,很多应用程序都需要通过邮件提醒用户, Fla...
    99+
    2024-04-02
  • Python自动化办公之定时发送邮件的实现
    目录定时模块的使用schedule 模块的介绍schedule 模块各种时间用法schedule 的启动该章节为 Python自动化办公篇 的最后一章,通过定时任务发送邮件的方式学习...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作