用Python定时发送天气邮件

效果如图

一、获取天气

def getWeather1(city):
    try:
        appid = os.environ["TIANQI_APPID"]
        appsecret = os.environ["TIANQI_APPSEC"]
    except KeyError:
        appid = 'x'x'x'x'  #www.tianqiapi.com申请的appid,有免费 api
        appsecret = 'xxxx'  #在www.tiaSnqiapi.com申请的appsecret
    url = 'https://tianqiapi.com/api?version=v1&city={city}&appid={appid}&appsecret={appsecret}'.format(city=city,
                                                                                                        appid=appid,
                                                                                                        appsecret=appsecret)
    res = requests.get(url)
    if res.json().get("errcode", 0) > 0:
        print(res.json().get("errmsg"))
        exit(0)
    data = res.json()['data']
    weather = {
        'today': data[0],
        'tomorrow': data[1],
        'aftertomorrow': data[2]
    }
    today = weather['today']
    tomorrow = weather['tomorrow']
    aftertomorrow = weather['aftertomorrow']

    today_avg = (int(today['tem1'][:-1]) + int(today['tem2'][:-1])) / 2
    tomorrow_avg = (int(tomorrow['tem1'][:-1]) + int(tomorrow['tem2'][:-1])) / 2
    wdc ='紫外线指数:'+today['index'][0]['level'] +'\n'+ \
           '穿衣指数:'+today['index'][3]['desc']+'\n'
    wdc += 'tips:'+today['air_tips']
    today_w = '今天 {} {}/{} 风力:{} 空气指数: {}/{} 日出日落: {}/{}'.format(today['wea'], today['tem1'], today['tem2'],today['win_speed'],today['air'],
                                                       today['air_level'], today['sunrise'], today['sunset'])

    tomorrow_w = '明天 {} {}/{} 风力:{} 空气指数:{}/{} 日出日落: {}/{}'.format(tomorrow['wea'], tomorrow['tem1'], tomorrow['tem2'],tomorrow['win_speed'],tomorrow['air'],
                                                              tomorrow['air_level'], tomorrow['sunrise'],
                                                              tomorrow['sunset'])

    aftertomorrow_w = '后天 {} {}/{} 风力:{} 空气指数:{}/{} 日出日落: {}/{}'.format(aftertomorrow['wea'], aftertomorrow['tem1'],
                                                                   aftertomorrow['tem2'],aftertomorrow['win_speed'],aftertomorrow['air'],
                                                                   aftertomorrow['air_level'], aftertomorrow['sunrise'],
                                                                   aftertomorrow['sunset'])
    todaytime = datetime.now()
    starttime = datetime.strptime('2020-08-21','%Y-%m-%d')
    days = (todaytime-starttime).days
    todaydate = str(todaytime.year) + '年' + str(todaytime.month) + '月' + str(todaytime.day) + '日'
    total = '早安!  亲爱的xx,xxxxx~愿你每天开开心心!\n'+ \
            '今天是:'+todaydate+','+'是和xxx在一起的第'+str(days)+'天,mua~\n'+ \
            '近日天气如下,xxx要注意保暖哦!\n'+ \
            today_w + '\n' + wdc +'\n'+ \
            tomorrow_w + '\n' + \
            aftertomorrow_w
    return total

二、获取金山词霸每日一句

def get_news():
    # 获取金山词霸的每日一句的英文和翻译
    url = "http://open.iciba.com/dsapi/"
    r = requests.get(url)
    content = r.json()['content']
    note = r.json()['note']
    news = content + '\n' + \
            note
    return str(news)

三、获取Sweet word

def getSweetWord():
    url = 'https://chp.shadiao.app/api.php'
    res = requests.get(url)
    return res.text

四、发送邮件

def sendemail(toaddr='', message=''):
    fromaddr = 'xxxxx@qq.com'  # 你的邮箱
    password = 'xxxxxfslfbfgg'  # 你的密码,注意不是qq密码
    smtp_server = 'smtp.qq.com'  # smtp地址
    msg = MIMEText(message, 'plain', 'utf-8')
    msg['From'] = _format_addr('xxx <%s>' % fromaddr)
    msg['To'] = _format_addr('xxx <%s>' % toaddr)
    todaytime = datetime.now()
    starttime = datetime.strptime('2020-08-21', '%Y-%m-%d')
    days = (todaytime - starttime).days
    emailtitle= '爱你的第'+str(days)+'天'
    msg['Subject'] = Header(emailtitle, 'utf-8').encode()
    server = smtplib.SMTP_SSL(smtp_server, 465)
    server.set_debuglevel(1)
    server.login(fromaddr, password)
    server.sendmail(fromaddr, [toaddr], msg.as_string())
    server.quit()
    return

五、组织信息,并发送

def dailymorning():

    message = getWeather1('xxx') + '\n' + \
              get_news() + '\n' + \
              getSweetWord() + '\n' + \
                '来自最爱你xxx'

    receivers = [['xxxx@qq.com'], ['xxxxxx@qq.com']]
    for i in range(len(receivers)):
        dailyemail.sendemail(toaddr=receivers[i], message=message)
        print('send receiver[{}] success'.format(receivers[i]))

六、win10系统设置定时启动程序。

到此这篇关于用Python定时发送天气邮件的文章就介绍到这了,更多相关Python发送天气邮件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python定时发送天气预报邮件代码实例

    这篇文章主要介绍了Python定时发送天气预报邮件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 用python爬虫爬到的天气预报,使用smtplib和email模块可以发送到邮箱,使用schedule模块可以定时发送.以下是代码- #导入模块 import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText

  • Python3爬虫教程之利用Python实现发送天气预报邮件

    前言 此次的目标是爬取指定城市的天气预报信息,然后再用Python发送邮件到指定的邮箱. 下面话不多说了,来一起看看详细的实现过程吧 一.爬取天气预报 1.首先是爬取天气预报的信息,用的网站是中国天气网,网址是http://www.weather.com.cn/static/html/weather.shtml,任意选择一个城市(比如武汉),然后要爬取的内容为下面的部分: 先查看网页源代码,并没有找到第一张图中的内容,说明是这些天气信息是通过别的方式加载出来的.我们打开开发者工具,点击XHR选项

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

    大致介绍 好久没有写博客了,正好今天有时间把前几天写的利用python定时发送QQ邮件记录一下 1.首先利用request库去请求数据,天气预报使用的是和风天气的API(www.heweather.com/douments/api/s6/weather-forecast) 2.利用python的jinja2模块写一个html模板,用于展示数据 3.python的email构建邮件,smtplib发送邮件 4.最后使用crontab定时执行python脚本 涉及的具体知识可以去看文档,本文主要就是

  • 用Python定时发送天气邮件

    效果如图 一.获取天气 def getWeather1(city): try: appid = os.environ["TIANQI_APPID"] appsecret = os.environ["TIANQI_APPSEC"] except KeyError: appid = 'x'x'x'x' #www.tianqiapi.com申请的appid,有免费 api appsecret = 'xxxx' #在www.tiaSnqiapi.com申请的appsecre

  • Python实现发送QQ邮件的封装

    本文实例为大家分享了Python实现发送QQ邮件的封装代码,供大家参考,具体内容如下 封装code import smtplib from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText from email.header import Header # type=plain 文本格式 默认 # type=ht

  • python实现发送QQ邮件(可加附件)

    本文实例为大家分享了python实现发送QQ邮件的具体代码,供大家参考,具体内容如下 东西比较简单,简单讲一下,直接贴代码了,其他邮箱都类似. 1.首先在qq 邮箱里面把stmp服务 打开 2.拉到下面,开启第一个,发送短信验证后会得到一个授权码: 3.代码,要注意的地方我都贴了注释: # coding=utf-8 import smtplib from email.mime.text import MIMEText from email.mime.image import MIMEImage

  • 如何用python批量发送工资条邮件

    目录 思路: 总结反思: 工资excel表格格式如下所示: 使用python批量给每位员工发送工资条信息,格式如下: 思路: 首先是加载excel,获取当前sheet表格 salay = load_workbook('大唐建设集团-2022年5月工资.xlsx', data_only=True) ws = salay.active 登录所使用的发件邮箱服务器 # 登录邮箱服务器 smtp_obj = smtplib.SMTP_SSL('smtp.qq.com', 465) # smtp_obj.

  • Python实现定时发送监控邮件

    目录 一.自动定时任务运行详情 二.开启POP3/SMTP服务 三.发送邮件 1 导入库 2 设置邮件内容 3 添加附件 4 发送邮件 5 邮件发送效果 四.设置定时任务 1 设置定时任务的具体步骤 2 设置定时任务的教学视频 不管是在信贷领域还是支付领域,作为一个风控人员,我们都需要对部署的策略模型进行监控,信贷领域可能还需要对客户的逾期表现进行监控.这时,如果我们能用python自动连接数据库,对策略.模型.贷后表现等数据进行分析处理,输出标准表格或图片到固定文件夹中.再用python自动定

  • zabbix利用python脚本发送报警邮件的方法

    前言 zabbix是个非常强大的监控工具,可以监控linux和windows的服务器数据,也可以通过自定义key来扩展默认的监控项,但是自带的邮件报警提供的信息却不太友善.本文想通过自定脚本的方式,实现在报警邮件的同时发送对应的图像和url连接. 步骤如下: 1.编辑zabbix_server.conf文件,修改AlertScriptsPath参数,该参数用于指定外部脚本的绝对路径. vim /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr

  • Python定时发送消息的脚本:每天跟你女朋友说晚安

    首先 你要有个女朋友 效果: 需要安装几个包 pip install wxpy pip install wechat_sender pip install requests 代码如下: from __future__ import unicode_literals from threading import Timer from wxpy import * from wechat_sender import Sender import time,requests bot = Bot(consol

随机推荐