QQ邮箱 接受 天气查询 阿里云自动运行学习记录

QQ邮箱 接受 天气查询 阿里云自动运行学习记录


前言

就是闲的无聊,自己想玩玩就去试了一下主要是有几个小demo的缝合吧,我觉得我自己写的贼垃圾写出来只是记录一下学到的东西,后面要是有想法可以再改,也希望和大家交流一下,欢迎批评与斧正,还望不吝赐教。
在这里插入图片描述


提示:以下是本篇文章正文内容,下面案例可供参考

一、对于天气的查询

1.中华万年历API接口,获取天气信息

天气查询代码如下:

# '中华万年历API接口,获取天气信息'
import json
import requests
def weather_work(city):
    url = 'http://wthrcdn.etouch.cn/weather_mini?city={}'.format(city)
    f = requests.get(url)
    jsons = json.loads(f.text)
    i = jsons['data']['forecast'][0]
    str_pr = i['date'] + "\n" + "天气 " + i['type'] + "\n" + i['high'] + "\n" + i['low'] + "\n" + "风力 " + str(
        i['fengli'])[-5:-3] + "\n" + i['fengxiang']
    a = "\n" + "今天是雨天记得带伞哦" + "\n"
    b = "\n" + "今天热了注意防晒哦" + "\n"
    c = "\n" + "没错是我今天也要元气满满哦" + "\n"
    for k in str(i['type']):
        if k == "雨":
            text = str_pr + a + c
        elif k == "晴":
            text = str_pr + b + c
        else:
            text = str_pr + c
    return text
if __name__ == '__main__':
    print(weather_work("你在的地区"))

二、qq邮箱的使用步骤

1.申请qq邮箱的权限

操作如下:
登录QQ邮箱->账号设置->开启服务->获取授权码
获取授权码的时候需要手机验证码

在这里插入图片描述
在这里插入图片描述

邮箱发送小样如下:

class Send:
    def __init__(self):
        self.send_user = '你的QQ邮箱'
        self.password = '授权码'
        self.email_host = 'smtp.qq.com'
    def send_mail(self, user_list, sub, content):
        message = MIMEMultipart()
        message['From'] = self.send_user
        message['To'] = ';'.join(user_list)
        message['Subject'] = sub
        message.attach(MIMEText(content, 'plain', 'utf-8'))

        server = smtplib.SMTP_SSL(self.email_host, 465)
        server.login(self.send_user, self.password)
        server.sendmail(self.send_user, user_list, message.as_string())
        server.quit() 

三、在阿里云上定时执行python jio本

这个环节你的有个阿里云服务器或者你有个好哥们有个闲着的服务器
在这里插入图片描述在这里插入图片描述
crontab
提交和管理用户的需要周期性执行的任务
补充说明
crontab命令 被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
语法
例如:

crontab(选项)(参数)
选项
-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。
查看crontab服务状态:
service cron status
手动启动crontab服务:
service cron start
查看crontab服务是否已设置为开机启动,执行命令:
实例
每1分钟执行一次command
* * * * * command
每小时的第3和第15分钟执行
3,15 * * * * command

然后就进去编辑了

crontab -e

30 7 * * * python的路径 .py的路径 >> 日志文件的路径
每天七点半执行一次将输出结果写入日志文件
手动启动crontab服务:
service cron start

四、结果


这里我用了

 try :
		send_mail(user_list2, sub, content2)
        print("ok",time.asctime())
 except:
        print("bug", time.asctime())

要是成功了就print ok 失败了就 print bug 还记得上面说的那个日志吗?就是帮我记录是否成功运行的
在这里插入图片描述
看看俺们的成功一次失败一次
但是好在服务器是执行了的哈哈哈
为什么会失败?一个循环加判断的地方错了这里也记录一下我的python错误,哎看来是真的渣啊

    for k in str(i['type']):
        if k == "雨":
            text = str_pr + a + c
        if k == "晴":
            text = str_pr + b + c
    return text

UnboundLocalError: local variable 'text' referenced before assignment
麻了还以为是我的大方向出问题了

if 要判断的条件:
    条件成立的时候,要做的事情
    .....
elif 要判断的条件:
    .....
elif 要判断的条件:
    ....
else:
    条件不成立的时候,要做的事情
    .....

发现问题之后

        if k == "雨":
            text = str_pr + a + c
        elif k == "晴":
            text = str_pr + b + c
        else:
            text = str_pr + c
    return text

总结

在这里插入图片描述
不想调代码了,要是不出问题的话应该就是成功了,每个模块我已经给大家分享了,要怎么玩看你们,无非就是功能添加写的比我还牛皮就是了,哈哈,到这吧先。

今天欧克了

posted @ 2022-03-30 14:39  Yang-blackSun  阅读(10)  评论(0编辑  收藏  举报  来源
1 3