本文来源吾爱破解论坛
本帖最后由 sherlo 于 2018-8-14 09:35 编辑
表弟是个大二的学生,成绩还不错,但是由于性格比较内向,连和女生多说几句话都不敢,这可把我急得,于是教了表弟 一个 '古老'的表白方法。
对,就是简单粗暴的使用控制台打印一些好看的符号或者情话。表弟刚开始觉得有点老掉牙,说“这好几年前的东西了,有点老掉牙了,而且我也不知道对方是否接受我呢(我又不敢多问)!”
针对表弟这个需求 ,于是便有了自动获取对方的输入(接受,拒绝之类的)并返回给自己,顺便获取对方IP地址并根据对方的选择自动发送相应的回复邮件(基于SMTP)
以下内容主要提供思路,根据自己的需求自行发挥,同时需要将py文件打包成exe文件(对方才能在没有python的情况下运行),不会的请多百度一下
1.首先输入一个好看的’图形‘吧(网上一大堆例子,可以选择自己喜欢的),我这里也提供一个 ,大概样子就是顺序输出’Dear,I love you‘
[Python] 纯文本查看 复制代码
import time sentence = "Dear, I love you forever!" for char in sentence.split(): allChar = [] for y in range(12, -12, -1): lst = [] lst_con = '' for x in range(-30, 30): formula = ((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3 if formula <= 0: lst_con += char[(x) % len(char)] else: lst_con += ' ' lst.append(lst_con) allChar += lst print('\n'.join(allChar)) time.sleep(1)
1.png (18.61 KB, 下载次数: 0)
下载附件 保存到相册
2.‘花里胡哨’的东西运行了,如果需要获取对方IP(保证对方网络通畅),将以下代码写入整个py文件中 。原理就是发送一个request请求到目标网址(查IP的)http://httpbin.org/ip,把得到的response记录下来待会同时发到邮箱中保存!代码如下[Python] 纯文本查看 复制代码
headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' } try: resp=requests.get('http://httpbin.org/ip',headers=headers,timeout=3) ip=resp.json()['origin'] except requests.exceptions.ConnectionError: print('请保证网络通畅,无网络!') except requests.exceptions.ReadTimeout: print('请保证网络通畅,程序即将退出!') time.sleep(5) os.system(exit())
3.然后 ,发挥你的文字功底,开始你的表演了,类似这样:
[Python] 纯文本查看 复制代码
list=['666,我太高兴了','这虽然不是我想要的结果,但我尊重你的选择!','我会加倍努力,让你接受我的!'] print('亲爱的,我喜欢你很久了,你愿意接受我吗?(1:接受 2:不接受 3:暂时不考虑)') print('你有10秒考虑时间,请仔细考虑!') time.sleep(10) print('请遵从你的内心大胆输入,一次就好:') a=input() while(a!='1' and a!='2' and a!='3'): print('输入错误,请重新输入!:') print('1:接受,2:不接受 3:暂时不考虑') a=input()
解释一下这个list,list里面存放你将发给对方邮箱的内容 ,对应我写的3个选择(你可以增加或者减少选择)
4.根据第三步获取到的输入(a),传入到一个发送邮件的函数中 ,对方能获取到一封来自你的邮件,在已发送中可查看详情并判断对方的选择。
[Python] 纯文本查看 复制代码
def send(a): #以qq邮箱为例 smtpserver = 'smtp.qq.com' user = '发送方(你)的邮箱账号' password = '发送方(你)的邮箱的SMTP授权码' sender ='发送方(你)的邮箱账号' #receive为接收方,也可以写自己(不让对方知道) receive = '接收方(她)的邮箱账号' #subject为邮件主题 subject ='Dear' #定义格式及输入内容 msg=MIMEText('<html><h1>%sIP:%s</h1></html>'%(list[a-1],ip),'html','utf-8') msg['Subject']=Header(subject,'utf-8') #执行发送操作 smtp = smtplib.SMTP() smtp.connect(smtpserver) smtp.login(user,password) smtp.sendmail(sender,receive,msg.as_string()) smtp.quit() send(int(a)) print('谢谢你的选择!') time.sleep(5)
补充说明一下,以qq邮箱为例,它的发送功能的实现需设置开通SMTP服务 ,开启后会有一个授权码,在password中填入,如果怕不安全可以用自己的小号充当这个发送方(怕对方抓包,我考虑的有点多了),只要接收方确定就行,在代码msg=MIMEText('<html><h1>%sIP:%s</h1></html>'%(list[a-1],ip),'html','utf-8')中,根据对方输入的a的值输出了list列表中对应内容及对方IP,如果不需要IP删掉对应代码即可!如图:
2.png (32.74 KB, 下载次数: 0)
下载附件 保存到相册
3.jpg (87.79 KB, 下载次数: 0)
下载附件 保存到相册
再次强调 :我仅提供思路,语言方面请自行修改,争取get到你的对象 !
另外:如果你确定只跟一个人表白(这样最好哈),最好自己把receieve写死,如果你像我表弟喜欢的不止一个(哈哈哈),又懒得每次都修改下发送对象并且需要生成不同的exe,可以尝试先定义一个列表存储你要发送的所有人的qq,并添加一个input(),让对方输入自己的qq号,并判断在列表中是否存在(防止对方乱写),然后将这个输入的值传入到receive中就可以了。当然 receieve也可以写成自己,没了回复效果但是能知道对方的选择。至于对方多次运行这个exe,并尝试选择不同的回应,这个不可控哈。
关于IP的题外话,获取到的IP可以实现精确定位http://chaipip.com/ip.php
这里我放一个exe的demo,帮助没有打包经验的同学看看运行效果。单纯只有print功能的哈,至于为什么,看懂这个帖子就不会纠结了。
链接: https://pan.baidu.com/s/1Fz0Gh-1_doaCevfrmY99AQ 密码: b8uc
评分五部曲.png (57.42 KB, 下载次数: 0)
下载附件 保存到相册
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 简易电脑版小闹钟自给自足
- 下一篇: 爬取济南最近30日天气并绘制折线图