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

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

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

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

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

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

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

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

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

贴上代码:

import smtplib from email.mime.multipart importMIMEMultipart from email.mime.text importMIMETextfrom email.mime.image import MIMEImagefrom email.headerimport 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小时待命运行脚本,我需要一台永不停止的电脑。

利用云服务可以搭建云站点,进行云计算,运行云爬虫……这里我们用来云算命!首先在其中配置Python运行环境,这里以某云为例。具体步骤,请继续往下看。

具体操作步骤

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

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

2)输入账号和密码,登陆服务器。

账号:ROOT,密码:就是刚才设置密码时的那个。

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

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

5)主机填IP地址。账号密码和刚才一样,端口填22。

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

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

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

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

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

然后脚本将会不间断自动运行(为避免不给发邮件的情况,邮件服务器和解决方案应慎重选择)。

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

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

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

最后想说的是,本文纯属虚构,如有雷同,节哀顺变。

这里主要是想讲一下如何使用和部署简单的云服务器。我们可以在云服务器上自动运行一些脚本,比如时间花费较长的爬虫脚本,或者数据量极大的运算逻辑。

然后,甚至我们可以搭建简易的站点,实现自己的API接口,比如可以尝试一下搭建一个POI查询服务API。

小编整理了一些java进阶学习资料和面试题,需要资料的请加JAVA高阶学习Q群:664389243 这是小编创建的java高阶学习交流群,加群一起交流学习深造。群里也有小编整理的2019年最新最全的java高阶学习资料!

神级程序员教你用代码哄好生气的女朋友,网友:我要甜甜的恋爱!相关推荐

  1. 怎么用python制作简单的程序-神级程序员教你如何用python制作一个牛逼的外挂!...

    玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过如何做一个外挂呢?(当然用外挂不是那么道义哈,呵呵),那我们就来看一下如何用python来制作一个外挂.... 我打开了4399小游 ...

  2. 神级程序员8000行css代码画出一个蒙娜丽莎,堪比达芬奇!

    代码画出的蒙娜丽莎 今天逛CODEPEN找HTML5动画案例的时候,偶尔看到一位神级大师的作品,用纯CSS代码画出一副蒙娜丽莎,虽然分辨率不高,但是仍然让我很是震撼,一看代码,整整8000行,基本一行 ...

  3. 知道经纬度用python画路线图_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  4. python中国地图程序设计_神级程序员教你用Python如何画一个中国地图!(好好玩)...

    为什么是Python 先来聊聊为什么做数据分析一定要用 Python 或 R 语言.编程语言这么多种, Java , PHP 都很成熟,但是为什么在最近热火的数据分析领域,很多人选择用 Python ...

  5. linux java jdk_神级程序员教你如何10分钟在Linux上安装java的JDK?

    在开始下载安装之前,我们先做几个准备工作: 检查系统是否安装了java并显示版本: # java -version 使用以上命令可以显示,如果说找不到即没有安装,可以使用: # sudo apt-ge ...

  6. 《千字文细谈》2021神级程序员都在用什么工具?-09-02

    答者:如下图  普通码农一枚,分享一下自己最常使用的几个效率生产工具. 目前还没看到神级程序员的回答,问题先码一下,坐等神级程序员. 下面本人抛砖引玉的回答: 1.关于架构设计和系统设计:会推荐几个自 ...

  7. 世界神级程序员之一,成了被人唾骂的神棍?

    本文转载自 差评 前几天, Richard M.Stallman(查理德 · 斯特曼)在视频中宣布,自己将要回到 35 年前一手创立的 FSF(自由软件基金会),并且希望再次领导 FSF . 在技术圈 ...

  8. 神级程序员都用什么工具?2020 年度开发工具 Top 100

    [CSDN 编者按]在过去的 2020 年,诞生了哪些新的开发工具?最优秀的开发工具和开发服务是什么?神级程序员们是怎么使用它们来开发顶尖的软件和服务? 作者 | StackShare Team    ...

  9. 看国外女神级程序员,直播写代码一年的感悟

    我第一次直播写代码是在去年七月份.我想要直播一下我在业余时间内为开源项目领域所做的工作,尽管在youtube上的大部分直播都是关于游戏的.我比较擅长于NodeJS的硬件库方面的工作(尽管大部分项目都是 ...

最新文章

  1. Spring源码版本命名规则及下载安装(下)笔记
  2. java中的文件处理io_Java的IO前奏曲:文件操作类之___File
  3. 误差反向传播法(一)【计算图】
  4. 从官网下载jdk1.6 1.7
  5. MySQL中的常用函数和聚合函数
  6. excel内容少却文件很大_Excel文件格式批量转换你会了吗?神操作!Excel文件转XPS格式...
  7. -lavutil -lavcodec -lavdevice -lavfilter -lavformat链接失败,换用-lffmpeg
  8. c++输出的值精确到小数点后5位_直击灵魂——圆周率小数点后3位到12411亿位到底有啥用?...
  9. 开源服务器日志审计系统,开源日志管理系统
  10. 整车控制器(VCU/HCU)开发咨询服务
  11. 论文写作-如何设置页眉奇偶页显示不同
  12. 手机如何双声道录音_中老年智能手机教程:手机通话如何录音?
  13. yii2.0域名目录绑定(二级域名)以及url美化 url伪静态 Apache ,Ngnix和 IIS
  14. 抄币不要盲目看价值,不然会被牵着走
  15. 立方和(使用Python求解)
  16. 电话呼叫转移的设置方法大全
  17. WebGL和OpenGL的区别及关系
  18. 恢复和保护视力的方法
  19. 指纹传感器的测试软件,【Arduino】168种传感器系列实验(149)-AS608光学指纹识别模块-Arduino中文社区 - Powered by Discuz!...
  20. python批量图片大小处理-多文件夹

热门文章

  1. 沈阳大雨部分地区积水情况
  2. android studio manifest merger failed,Android Studio报错Manifest merger failed with multiple errors...
  3. c语言上机试题8,7-8-C语言上机考试试题2.doc
  4. python字符串左边补0_python 实现数字字符串左侧补零的方法
  5. Android APK 32位和64位 的区别
  6. 本地搭建Agriculture_KnowledgeGraph农业知识图谱环境时遇到的问题及解决办法
  7. oracle11g断电后无法启动,电脑突然断电后无法启动
  8. MySQL 的 20+ 条最佳实践
  9. 深克隆和浅克隆的区别
  10. 基于MTK平台kpd驱动初步分析