女朋友的情绪难以捉摸,作为程序员我应该()

女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
文章发布于公号【数智物语】 (ID:decision_engine),关注公号不错过每一篇干货。

转自 |数据团学社(微信搜索metrodata_xuexi 即可关注)
本文约1200字,阅读需要4分钟
关键词:阿里云 Python邮件 星座
本文讲述了使用和部署简单云服务器的方法,可以用Python实现以邮件方式获取每日星座运势。
最近遇到了一件难事:我发现女友突然爱上了“十二星座”,每天翻看各种星座运势,逮着人就要给人算命,神神叨叨的,心情也同样如天上的星星那般,难以捉摸。
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
这可怎么办呢?为了摸清其规律,对症下药,挽回我即将逝去的爱情,我搜索“星座运势”,得到这个东东:
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
这可真是好东西!可是星座运势每天都不一样,如果能像日报那样每天获取到推送就太好了!
我决定使用当今最前沿的互联网云服务,实现自动算命功能,以科学的手段拯救爱情。
获取星座信息,选定算命网站
女友的星座?嗯…我记得好像是白羊或者金牛或者双子…或者摩羯或者水瓶或者双鱼。算了算了~这个不重要,随机吧!
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
排名第8的星座:天蝎座。应该就是它了!
然后,我浏览各大算命网站,发现大家算出来的结果都是一个版本,那也随机选一个吧!
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
这是一款星座运势查询API,具体如何使用API,请参考这篇:感谢百度,我再也不用手动抓经纬度了!
主要步骤就是访问API——获取星座json数据,十分简单。
贴上代码:
importsmtplib
fromemail.mime.multipartimportMIMEMultipart
fromemail.mime.textimportMIMEText
fromemail.mime.imageimportMIMEImage
fromemail.headerimportHeader
importrequests
importtime
#构建调用API函数
defrun():
url ='https://api.shenjian.io/constellation/today?appid=74a1d223b7f5105634f6e0c3341bea82'
params = {'constellation':'天蝎座'}
data = https://www.it610.com/article/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 '
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、构建定时任务
defmain():#构建定时任务
while1:
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~
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片
女朋友的情绪难以捉摸,作为程序员我应该()
文章图片

    推荐阅读