每天不知道怎么给女神 (男神) 发消息?我是这么做的......

大佬们好,我是单身狗夜雨声烦。春天到了,万物复苏.....(咳咳,跑题了)

是不是有人冲着标题进来了,先别走...

最近压力比较大,就想着做一点有趣味的东西

比如说,每天定时给女神发个笑话(随便什么啦),逗一下她(我的女神在哪儿 T T)开心啊~

既然有想法那咱就做吧,得想办法怎么实现?

找笑话源

笑话源当然去找免费的 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

QQ 发送,我的思路还是蛮多的。嗯,只不过都被打脸了,一点儿都不疼

selenium: selenium 嘛,就登录网页 QQ 呀,然后找到 ta 的聊天框,然后不就...想想还有点小激动呢

image.png

![image.png](http://testingpai.com/upload/file/2019/ae6677a0-f031-406b-bd97-675a54f510fc.png!large 300x200)

win32

win32 的操作想想都复杂,登录 PC 上的 QQ,然后找好友,吧啦吧啦,在下水平和时间有限,可行性也可能存在问题,就不考虑
思路如下:

  1. 利用 windows 定时任务启动并登录 QQ
  2. 然后就是定位-> 点击-> 定位-> 点击-> 输入笑话-> 发送

![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

这个功能就大体上实现了

![image.png](http://testingpai.com/upload/file/2019/7e236256-f211-453d-a3b1-e64650154889.png!large =200x250)

定时发送

上面就说过,定时发送不是利用 Jenkins,而是利用 windows 系统自带的定时任务。在此之前,请写一个批处理命令脚本(别说你不会写!!),将执行 py 文件的命令写进去,然后双击这个脚本就可以执行发信操作。

正式的操作步骤:

  1. cmd-> 输入 compmgmt.msc 并回车唤起计算机管理窗口
  2. 计算机管理-> 任务系统程序-> 任务计划程序库,在右侧操作选项中选择创建基本任务
  3. 名称,描述自己填个能记住的,下一步
  4. 触发器自己选个合适的,每天每周等等,下一步
  5. 直接点击下一步
  6. 程序或者脚本这里,选择创建好的批处理命令脚本的路径,选好下一步
  7. 至此定时也设计完毕

image.png

PS

仅供娱乐,被女神男神拉黑概不负责

image.png

回帖
请输入回帖内容 ...