大佬们好,我是单身狗夜雨声烦。春天到了,万物复苏.....(咳咳,跑题了)
是不是有人冲着标题进来了,先别走...
最近压力比较大,就想着做一点有趣味的东西
比如说,每天定时给女神发个笑话(随便什么啦),逗一下她(我的女神在哪儿T T)开心啊~
既然有想法那咱就做吧,得想办法怎么实现?
- 找到笑话源
- 什么方式发给(ta)
- 短信
- 邮件
- 如何定时操作(肯定不是用Jenkins! 大材小用!)
找笑话源
笑话源当然去找免费的API呀~这里分享出来:“http://api.laifudao.com/open/xiaohua.json”
然后这个都有了,就写代码搞一条笑话出来,先看一下这个接口返回的是什么。点链接进去,发现是一个json格式的。然后是一个大列表里面包含N个字典,每一个字典就是一个笑话源。然后在里面随便取值就好了。这边我代码展示一下:
import requests
import re
# 获取笑话
joke_url = "http://api.laifudao.com/open/xiaohua.json"
resp = requests.get(url=joke_url)
# print(resp.json())
joke_title = resp.json()[5]["title"] // 笑话的标题
joke = re.sub('/*<br/><br/>', r'\n', resp.json()[5]["content"]) // 笑话的内容
print(joke, joke_title)
在代码中,可以看到我使用了正则把源中的
替换成了 "\n",也就是换行,这样子方便阅读。好了,笑话的内容已经找到了。接下来就是想着如何实现把这个发给女神了
如何发送
三种方式到底该如何抉择呢?
QQ发送,我的思路还是蛮多的。嗯,只不过都被打脸了,一点儿都不疼
selenium: selenium嘛,就登录网页QQ呀,然后找到ta的聊天框,然后不就...想想还有点小激动呢
![image.png](http://testingpai.com/upload/file/2019/ae6677a0-f031-406b-bd97-675a54f510fc.png!large 300x200)
win32
win32 的操作想想都复杂,登录PC上的QQ,然后找好友,吧啦吧啦,在下水平和时间有限,可行性也可能存在问题,就不考虑
思路如下:
- 利用windows定时任务启动并登录QQ
- 然后就是定位->点击->定位->点击->输入笑话->发送
![image.png](http://testingpai.com/upload/file/2019/5840c617-035a-431d-8f4c-ded1dc671a3c.jpeg!large =300x200)
appium
要不通过appium用手机来~~~需要模拟器,需要启动服务巴拉巴拉的....有那功夫,我还不如直接发消息让女神多喝热水呢。。我真是机智啊嘿嘿嘿
![image.png](http://testingpai.com/upload/file/2019/a6ce5f3b-2009-4a19-9fee-474b3367e82c.png!large 300x200)
总结
通过qq或微信的方式,失败
短信
通过短信来实现的话,是有一定可行性的,那就是调用一些数据接口来实现,实现门槛比较低,缺点就是需要收费,我好穷T_T.
邮件
邮件发送可行性是最最高的,那就实现一下~
新建一个send_email模块,代码如下:
# -*- coding=utf-8 -*-
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.header import Header
# 邮件发送的用户名和密码 常识:第三方授权码
_user = "xxxxxxxxxxx@qq.com" # 你的邮箱
_pwd = "xxxxxxxx" # 你的邮箱授权码
class sendEmail:
def send_email(self, email_to, title, content):
# email_to 收件方
# filepath 你要发送附件的地址
# 如名字所示Multipart就是分多个部分
msg = MIMEMultipart()
msg["Subject"] = title
msg["From"] = Header("单身狗夜雨声烦", 'utf-8') // 发件人header,名字自己想一个就好啦
msg["To"] = Header("女神", 'utf-8') // 收件人header,自己想好听的
# ---这是文字部分---
part = MIMEText(content)
msg.attach(part)
s = smtplib.SMTP_SSL("smtp.qq.com", timeout=30) # 连接smtp邮件服务器,端口默认是25
s.login(_user, _pwd) # 登陆服务器
s.sendmail(_user, email_to, msg.as_string()) # 发送邮件
s.close()
if __name__ == '__main__':
sendEmail().send_email("wurz529@foxmail.com", "明天聚会你来吗?", "全是妹子!")
这个写好了之后,结合从接口拿到的笑话以及笑话标题,这个就基本完成了。最终呈现如下:
#!usr/bin/python3
# -*- coding: utf-8 -*-
# @Time : 2019/3/14 15:16
# @Author : Yosef-夜雨声烦
# @Email : wurz529@foxmail.com
# @File : joker.py
# @Software : PyCharm
import requests
import re
from send_email import sendEmail
# 获取笑话
joke_url = "http://api.laifudao.com/open/xiaohua.json"
resp = requests.get(url=joke_url)
# print(resp.json())
joke_title = resp.json()[5]["title"]
joke = re.sub('/*<br/><br/>', r'\n', resp.json()[5]["content"])
# print(joke, joke_title)
sendEmail().send_email(email_to="wurz529@foxmail.com", title=joke_title, content=joke)
运行一下看看效果:
这个功能就大体上实现了
![image.png](http://testingpai.com/upload/file/2019/7e236256-f211-453d-a3b1-e64650154889.png!large =200x250)
定时发送
上面就说过,定时发送不是利用Jenkins,而是利用windows系统自带的定时任务。在此之前,请写一个批处理命令脚本(别说你不会写!!),将执行py文件的命令写进去,然后双击这个脚本就可以执行发信操作。
正式的操作步骤:
- cmd->输入compmgmt.msc并回车唤起计算机管理窗口
- 计算机管理->任务系统程序->任务计划程序库,在右侧操作选项中选择创建基本任务
- 名称,描述自己填个能记住的,下一步
- 触发器自己选个合适的,每天每周等等,下一步
- 直接点击下一步
- 程序或者脚本这里,选择创建好的批处理命令脚本的路径,选好下一步
- 至此定时也设计完毕
PS
仅供娱乐,被女神男神拉黑概不负责
欢迎来到testingpai.com!
注册 关于