隔壁幼儿园小朋友都比你会撩妹

项目连接:github.com/QiDaChen/pe…python

起源

笔者是一个coder,git

一个有女友的coder。程序员

一个有女友但特别懒的coder,github

一个有女友但特别懒可仍是很想让女友如沐春风的coder,api

一个有女友但特别懒可仍是很想让女友如沐春风可记性不大好的coder,服务器

​ 后来发现,呆板如笔者,实在难于兼容女友大人的需求版本,譬如,天天的早安晚安打卡老是由于一把游戏或者一个需求的影响忘得死死的,当想起来了的时候发现该到下一轮的打卡了。老是由于这样让人难以控制的缘由须要解释安抚半天,这让笔者绝望而且懊恼。直到有一天看到这句话,人工智能能够替代人类从事一部分工做,把人类从繁杂、重复的劳动中解脱出来,从事更加须要感性思惟的工做,如艺术、科研、神学、哲学等工做。一瞬间醍醐灌顶,繁杂、重复、解脱、解脱,一个可怕可是让笔者兴奋不已的想法开始在脑海中生根发芽。撩妹本领不够,编码技能来凑。微信

​ 有了这个想法以后,笔者就迅速开始准备策划,千万不要等女友受不了我以后才作出来呀,眼看他起高楼,眼看他宴宾客,眼看他楼塌了,这是多么绝望的情景呀,毕竟,有女友是一件值得让程序员骄傲的事,但是有过女友,就要逊色太多了,想到这里,百度已经帮笔者找到了解决方案,itchat,迅速翻文档,测试代码,:itchat.readthedocs.io/zh/latest/ 通过简单的api研究,安装完模块,就开始了第一个版本的开发工做,数据结构

1:python 控制微信自动发送消息dom

import itchat

itchat.auto_login()

itchat.send('Hello, world', toUserName='filehelper')
复制代码

完工运行,文件助手收到了,个人第一条消息,但是来不及兴奋,笔者赶忙进行研究文档,看怎么去给特定好友好友发送信息,toUserName应该是每一个好友都有的相似网名或者id的东西,想到这里,就决定得先把全部好友的信息拿下来研究一番,ide

friends = itchat.get_friends(update=True)[1:]  
复制代码

拿到好友信息,进行简单的数据结构分析,便发现了其中的奥秘

def dealFriendsData(friends):
    ''' 函数的参数是微信好友信息的字典 微信全部好友的信息抓取 好友信息中的网名 id 备注 个性签名 城市 性别 都被保存在了DataFrame数据帧里面 留做备用 转换好的df被做为返回值返回 '''
    fs = {}
    for i in friends:
        fs[i['NickName']] = {'UserName':i['UserName'],'Remark':i['RemarkName'],'Sex':i['Sex'],'qianming':i['Signature'],'city':i['City']}
    dfs = pd.DataFrame(fs).T
    return dfs
复制代码

通过以上操做,好友的信息便被安排的明明白白,经过对信息中的命名的检查,一眼找到 UserName的信息,

想要找到女友的username手到擒来

she_username = df[df['Remark']=='女友的备注'].iloc[0].UserName
复制代码

ok!至此,只剩下时间的问题了,要选在什么时间呢,不能太早,不能太晚,不能每天准点发,一个随机时间还不足以让笔者费脑筋

import time
from random  import randint

def initConfig():
    ''' 设置问候语和问候时间段的地方 words 是问候语设置位置 time 由于时间是随机的,可是有范围,[7,2]表示<7点以后两小时以内的随机时间> '''
    config = {'morning':{'flag': True,'words':'早安','time':[7,2]},
              'afternoon':{'flag': True,'words':'晚安','time':[21,2]},
              'daily':{'flag': True,'words':qinghua(),'time':[11,7]}}
    for i,j in config.items():
        config[i]['unix'] = today + j['time'][0]*3600 + randint(1,j['time'][1]*3600)    
    return config
    
#定时发送信息
today = 1558886400#北京时间2019-05-27 00:00:00 unix时间戳
oneday = 24*60*60
nextday = today + oneday
set_ = initConfig()

while 1:
    now = int(time.time())#得到当前的时间戳
    temp = now - nextday
    #一天过完以后
    if temp > 0:
        today = nextday
        nextday += oneday
        set_ = initConfig()     
    #检测 时间 
    else:
        for i,j in set_.items():
            if now-j['unix'] > 0 and j['flag']:
                itchat.send_msg(j['words'],she_username)
                set_[i]['flag'] = False
    
        
            
复制代码

​ 定时发送通过unix时间戳的灵活运用,实现了完美随机,接下来就是情话了,笔者是没有说情话的天分的,可是做为一个spider,历来都不怕,笔者准备了一个txt文本,把日常看到的听到的情话整理了起来,随机读取一下试试,

def qinghua():
    ''' 从qinghua.txt中随机取一句话出来 注意在文本中添加新的情话时候要换行 '''
    with open ('qinghua.txt','r') as file:
        word = file.read()
    word_list = word.split('\n')
    return choice(word_list) 
复制代码

​ 到此为止,全部的问题全都被解决,整理代码上传到github地址:github.com/QiDaChen/pe…其中除了定时为发送问候,还有实时微信消息控制爬虫<百度一下、图灵机器人、工做数据读取等功能>,而后阿里云服务器对代码进行运行,今后,脚本帮我哄女友,而我有更多的时间写个人代码。

​ 用户指南,进入github地址后,红框中的两个文件就能够实现每日问候的功能,python环境及扩展包,

python:3.x

itchat

pandas

模块安装都很简单,直接黑框输入《pip install itchat》

配置完成后,就等一个美好的早晨,代码往闲置多年的服务器上一扔就开始脚本的运行把,至于为何是早晨,是由于我在午后运行了下代码以后,女友收到消息让我解释一下是么叫陪你满腔豪迈和悲歌。

相关文章
相关标签/搜索