大鹏说 :本文约1200字,阅读需要4分钟。本文讲述了使用和部署简单云服务器的方法,可以用Python实现以邮件方式获取每日星座运势。

关键词:阿里云 Python 邮件 星座

p.s.文末有源代码分享

最近遇到了一件难事:我发现女友突然爱上了“十二星座”,每天翻看各种星座运势,逮着人就要给人算命,神神叨叨的,心情也同样如天上的星星那般,难以捉摸。

这可怎么办呢?为了摸清其规律,对症下药,挽回我即将逝去的爱情,我搜索“星座运势”,得到这个东东:

这可真是好东西!可是星座运势每天都不一样,如果能像日报那样**每天获取到推送就太好了!

我决定使用当今最前沿的互联网云服务,实现自动算命功能,以科学的手段拯救爱情。

获取星座信息,选定算命网站

女友的星座?嗯…我记得好像是白羊或者金牛或者双子…或者摩羯或者水瓶或者双鱼。算了算了~这个不重要,随机吧!

排名第8的星座:天蝎座。应该就是它了!

然后,我浏览各大算命网站,发现大家算出来的结果都是一个版本,那也随机选一个吧!

主要步骤就是访问API——获取星座json数据,十分简单。

贴上代码:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.image import MIMEImage
from email.header import Header
import requests
import time#构建调用API函数
def run():url = 'https://api.shenjian.io/constellation/today?appid=74a1d223b7f5105634f6e0c3341bea82'  params = {'constellation':'天蝎座'}data = requests.get(url,params=params).json()constellation = data['data']['constellation']fate = data['data']['fate']total = data['data']['fate_data'][0]['name']total_score = data['data']['fate_data'][0]['value']love = data['data']['fate_data'][1]['name']love_score = data['data']['fate_data'][1]['value']work = data['data']['fate_data'][2]['name']work_score = data['data']['fate_data'][2]['value']fortune = data['data']['fate_data'][3]['name']fortune_score = data['data']['fate_data'][3]['value']lucky_color = data['data']['lucky_object'][1]lucky_num = data['data']['lucky_object'][2]health = data['data']['lucky_object'][3]analysis = data['data']['analysis']#对API返回的数据构建邮件文本内容content = '''{}星座:{}{}:{}{}:{}{}:{}{}:{}{}{}{}运势分析:{}'''.format(fate,constellation,total,total_score,love,love_score,work,work_score,fortune,fortune_score,lucky_color,lucky_num,health,analysis)

#用脚本获取自动反馈

第二步,我需要把查询到的结果,每天自动反馈给我,比如通过短信或者邮件。

这里选择邮件,因为发短信要钱,邮件不要钱。

首先,注册一个邮箱,这里推荐163邮箱。获得SMTP服务器地址。

然后编写邮件发送自动发送脚本,脚本内容为通过API获取的星座运势。然后设置定时发送时间,比如每天早上8点。这里为了快速验证脚本,简单设置了间隔60秒发送一次。

##1、设置邮件发送任务

#下面的发件人,收件人是用于邮件传输的。
smtpserver = 'smtp.163.com' #邮件服务器
username = 'XXX@163.com' #邮箱
password='XXXXXX' #邮箱密码
sender='XXX@163.com' #发件人邮箱
receiver='XXX@qq.com' #收件人邮箱
#收件人为多个收件人
#receiver=['XXX@126.com','XXX@qq.com']subject = '星座运势' #邮件名称
#通过Header对象编码文本,如果出现中文乱码情况,请使用
#subject = '中文标题'
#subject=Header(subject, 'utf-8').encode()

##2、构造邮件对象

#构造邮件对象
#下面的主题,发件人,收件人,日期是显示在邮件页面上的。
msg = MIMEMultipart('mixed')
msg['Subject'] = subject
msg['From'] = 'private_server@163.com <XXX@163.com>'
msg['To'] = 'XXX@qq.com'
#收件人为多个收件人,通过join将列表转换为以;为间隔的字符串
#msg['To'] = ";".join(receiver)
#msg['Date']='2018-9-23'

##3、构造文字内容

text = content #传入文本
text_plain = MIMEText(text,'plain', 'utf-8')
msg.attach(text_plain)

##4、发送邮件

smtp = smtplib.SMTP()
smtp.connect('smtp.163.com')
#用set_debuglevel(1)可以打印出和SMTP服务器交互的所有信息。
print(smtp.set_debuglevel(1))
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()

##5、构建定时任务

def main(): #构建定时任务while 1 :run()time.sleep(60)#设置脚本运行的时间间隔

到此,简单的算命脚本就弄好了。不过接下来面临一个问题,家中电脑不可能24小时待命运行脚本,我需要一台永不停止的电脑。

#获取一台“永不停止的电脑”

阿里云了解一下。

阿里云可以搭建云站点,进行云计算,运行云爬虫……当然也可以用来云算命!

首先,进入阿里云官网,使用您的淘宝账号登陆

购买云服务器ECS,找最便宜的就好

选择服务器配置,配最便宜的就行,镜像从镜像市场找一个python运行环境

然后下单,只要15.4!挺便宜的。

#使用阿里云

我们进入管理控制台,查看实例,已经在运行中了:

1)先重置服务器密码,然后进行远程连接。这里会自动生成一个远程连接密码,记下来,不要忘了

2)输入账号和密码,登陆服务器
账号:root,密码:就是刚才设置密码时的那个。

3)下面和平时使用cmd安装python包一样,我们安装一些会使用到的库:

4)下载一个FileZilla,用来上传脚本至服务器:

5)主机填IP地址(在阿里云控制台,实例详情页)。账号密码和刚才一样,端口填22

6)新建一个文件夹,把脚本拖进去

7)为了使用方便,我们可以再下载一个叫putty用于访问服务器,进行操作

填入IP和端口,然后点击OPEN,后面和在页面上进行远程管理操作完全一样~

比如,我们可以进入python环境,运行一些代码:

这里,先CD到脚本所在目录,然后,键入后台运行脚本命令。

然后脚本将会不间断自动运行。

(备注:邮件服务请使用阿里云自己的邮箱服务器和解决方案,否则可能会发生不给发邮件的情况)

好了,让我们查看一下邮箱:

点开一封邮件,是这样的:

看!结果一目了然,这样我就可以有针对性的哄女友开心了!

比如,上面写到,今天是一个适合学习和积累的日子。我果断为女友入手一套数据分析师(Python)微专业课程,我觉得她一定会取消今天和我共进晚餐的计划,好好学习!

附注:

本文纯属虚构,如有雷同,节哀顺变。

这里主要是想讲一下如何使用和部署简单的云服务器。我们可以在云服务器上自动运行一些脚本,比如时间花费较长的爬虫脚本,或者数据量极大的运算逻辑。然后,甚至我们可以搭建简易的站点,实现自己的API接口,比如可以尝试一下搭建一个POI查询服务API~

如需获得文中数据、完整代码以请关注公号“数据团学社”,并在后台回复【20】

与大鹏交流,请加数据团学社QQ群837627861

女朋友的情绪难以捉摸,作为程序员我应该?相关推荐

  1. 程序员女朋友礼物python代码_@程序员,用 Python 给女朋友准备个儿童节礼物可好?...

    原标题:@程序员,用 Python 给女朋友准备个儿童节礼物可好? 作者 | 猿媛牧场 现在谈个恋爱.结个婚是真的炸啊.你 2.14 要送礼物,我认了,必须送啊,没有理由不送啊:3.14 白色情人节, ...

  2. 送给女朋友的小礼物(程序员)

    送给女朋友的小礼物 程序员还有女朋友?(没错,就是有) 四个模块 一.主页 1.导航栏 2.轮播图 3.页面锚点 4.部分内容展示 二.照片墙 三.我想对她说的话 四.历程 相关代码 程序员还有女朋友 ...

  3. 云话题 | 你女朋友在买买买时,程序员小哥在干嘛?

    简介:年货节来了,你女朋友下单了吗?观看直播已经成为人们日常上网的习惯之一,直播购物作为其中的重要项目,销售额屡创新高.最近,天猫年货节刚刚开幕,淘宝直播中就涌入了不少的用户前来抢购,毕竟足不出户就可 ...

  4. 你女朋友在买买买时,程序员小哥在干嘛?

    年货节来了,你女朋友下单了吗? 观看直播已经成为人们日常上网的习惯之一,直播购物作为其中的重要项目,销售额屡创新高.最近,天猫年货节刚刚开幕,淘宝直播中就涌入了不少的用户前来抢购,毕竟足不出户就可以买 ...

  5. 只因女朋友一个建议,这个程序员创立仅551天公司后被10亿美元收购了

    [编者按]发现一个有趣的现象,许多伟大的发明和发现都来源于偶然.比如像万有引力定律,比如像阿基米德原理,再比如本文-- 编译 | 李磊    责编 | 张文 出品 | CSDN(ID:CSDNnews ...

  6. 工作时不方便回复女朋友,这也是程序员单身理由?手把手教你搭建撩妹神器——基于Keras实现中英文翻译系统/聊天机器人seq2seq模型

    开篇导读 首先复习下前面聊天机器人系列: <一>聊天机器人/翻译系统系列一梳理了聊天机器人网络设计模型原理 (理论篇-图文解锁seq2seq+attention模型原理) <二> ...

  7. 你有对象了吗?论程序员最喜欢哪种职业的女朋友

    原文链接 你有对象了吗?论程序员最喜欢哪种职业的女朋友 发布时间:2017-05-09 17:40:14 663人关注 53人参与 众多职业中,程序员找对象这个话题一直容易被网友恶搞.只要网上搜索关键 ...

  8. 程序员如何找女朋友?教你程序员找女朋友的技巧!

    很多程序员都会遇到这样的一个难题,那就是自己到一定年纪了,但是找不到合适的对象,很多程序员由于工作的原因,很少更人接触交流,所以导致性格老实内向,这样的性格对于找女朋友来说是致命的.今天,小编就给各位 ...

  9. Python程序员找了个女朋友, 没有时间聊天? 做一个自动回复功能!还会怕没有女朋友吗?

    本人已经从事了Python近9年,目前已经是一个全栈工程师,不怕本人出丑,程序员一般都是加班,特别是项目组,更是加班到四五更,但是有没有想过,在找了一个女朋友之后,不在女朋友身边,如何做到秒回女朋友的 ...

最新文章

  1. 【干货】目标检测比赛中的trick
  2. 华为云AI开发部总经理罗华霖:华为人工智能的实践与创新
  3. python程序设计报告-20183215 实验三《Python程序设计》实验报告
  4. 这个图形的体积有限,但表面积却是无穷大
  5. Kafka生产者详解
  6. 关于Android C++的NDK环境搭建(Win7系统)
  7. 全球最权威人脸识别测试,中国团队依图科技夺得第一
  8. 通过 Continual Learning 提高 ML.NET 模型准确性并增强性能
  9. 移动端使用页尾文字使用绝对定位遇到input框会飘起来的处理方案
  10. 第十三届蓝桥杯青少年STEMA(2021.08-2021.03)C++
  11. 【Level 09】U1 The way I see it L1 A great adventure
  12. 电信业降薪可能并不完全是空穴来风
  13. logo qt添加_Qt官方示例-窗口标志
  14. Linux网站搭建(1)---Apache2安装配置
  15. 大额支付系统行号编制规则
  16. 日程安排工具Calendso
  17. 推荐一款多平台快速开发的前端UI框架 —— uView UI
  18. 微信服务器保留几年记录_企业微信朋友圈管理的工具
  19. Proxyee-down 3.x的下载与安装
  20. JetBrains-License-Server

热门文章

  1. mac运行zookeeper的zkServer.sh,显示FAILED TO WRITE PID
  2. MATLAB 实现 歌曲《两只老虎》 播放
  3. ES6 — Promise基础用法详解(resolve、reject、then、catch,all,)
  4. onvif 模拟摄像头_ONVIF 设备发现(网络摄像头)——实例笔记
  5. 如何获得免费二级域名?仅需这一步
  6. Snowflake vs. Databricks谁更胜一筹?2022年最新战报
  7. java百度上传控件_百度Bos上传文件工具类-BosUtils(java)
  8. 九段刀客:js九宫格转盘抽奖实现原理
  9. Android小项目--Suzy计算器
  10. 程序员关爱-坐姿检测-设计思路及使用与下载