用Python来撩妹吧-实时掌控她的小情绪

好不容易有了女朋友,可相处起来总是磕磕碰碰。

有时候,你很想关心她,但是你太忙了,以至于她一直抱怨,觉得你不够关心她。你暗自下决心,下次一定要准时发消息给她,哪怕是几句话,可是你又忘记了。你觉得自己很委屈😭,但是她又觉得你不负责。

现在,再不用担心了,用python就可以给女友定时发提示消息了,而且不会漏过每一个关键时刻,每天早上起床、中午吃饭、晚上吃饭、晚上睡觉,都会准时发消息给她了,而且还可以让她学习英语单词哦!

在生日来临之时,自动发祝福语。在节日来临之时,比如三八妇女节、女神节、情人节、春节、圣诞节,自动发问候语哦,再也不用担心他说你没有仪式感了😀

最重要的是,可以实时知道女友的情感情绪指数,再也不用担心女友莫名其妙生气了。

编写思路

为了方便快速开发,我们使用python中的wxpy模块完成微信的基本操作。

首先,我们设置一个config.ini配置文件,并从这个配置文件开始读取信息。这些参数一看就懂,所以无需多言。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
# 读取配置文件

cf = configparser.ConfigParser()

cf.read("./config.ini",encoding='UTF-8')



# 设置女友的微信名称,记住,不是微信ID也不是微信备注

# 你女友的微信名称,记住,不是微信ID也不是微信备注

my_lady_wechat_name = cf.get("configuration", "my_lady_wechat_name")



# 设置早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间

say_good_morning = cf.get("configuration", "say_good_morning")

say_good_lunch = cf.get("configuration", "say_good_lunch")

say_good_dinner = cf.get("configuration", "say_good_dinner")

say_good_dream = cf.get("configuration", "say_good_dream")



# 设置女友生日信息

# 几月,注意补全数字,为两位数,比如6月必须写成06

birthday_month = cf.get("configuration", "birthday_month")

# 几号,注意补全数字,为两位数,比如6号必须写成08

birthday_day = cf.get("configuration", "birthday_day")



# 读取早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间的随机提示语

# 一般这里的代码不要改动,需要增加提示语可以自己打开对应的文件修改

#早上起床问候语列表,数据来源于新浪微博

str_list_good_morning = ''

with open("./remind_sentence/sentence_good_morning.txt", "r",encoding='UTF-8') as f:

str_list_good_morning = f.readlines()

print(str_list_good_morning)



#中午吃饭问候语列表,数据来源于新浪微博

str_list_good_lunch = ''

with open("./remind_sentence/sentence_good_lunch.txt", "r",encoding='UTF-8') as f:

str_list_good_lunch = f.readlines()

print(str_list_good_lunch)



#晚上吃饭问候语列表,数据来源于新浪微博

str_list_good_dinner = ''

with open("./remind_sentence/sentence_good_dinner.txt", "r",encoding='UTF-8') as f:

str_list_good_dinner = f.readlines()

print(str_list_good_dinner)



#晚上睡觉问候语列表,数据来源于新浪微博

str_list_good_dream = ''

with open("./remind_sentence/sentence_good_dream.txt", "r",encoding='UTF-8') as f:

str_list_good_dream = f.readlines()

print(str_list_good_dream)



# 设置晚上睡觉问候语是否在原来的基础上再加上每日学英语精句

# False表示否 True表示是

if((cf.get("configuration", "flag_learn_english")) == '1'):

flag_learn_english = True

else:

flag_learn_english = False

print(flag_learn_english)

# 设置所有问候语结束是否加上表情符号

# False表示否 True表示是

str_emoj = "(•‾̑⌣‾̑•)✧˖°----(๑´ڡ`๑)----(๑¯ิε ¯ิ๑)----(๑•́ ₃ •̀๑)----( ∙̆ .̯ ∙̆ )----(๑˘ ˘๑)----(●′ω`●)----(●・̆⍛・̆●)----ಥ_ಥ----_(:qゝ∠)----(´;ω;`)----( `)3')----Σ((( つ•̀ω•́)つ----╰(*´︶`*)╯----( ´´ิ∀´ิ` )----(´∩`。)----( ื▿ ื)----(。ŏ_ŏ)----( •ิ _ •ิ )----ヽ(*΄◞ิ౪◟ิ‵ *)----( ˘ ³˘)----(; ´_ゝ`)----(*ˉ﹃ˉ)----(◍'౪`◍)ノ゙----(。◝‿◜。)----(ಠ .̫.̫ ಠ)----(´◞⊖◟`)----(。≖ˇェˇ≖。)----(◕ܫ◕)----(`◕‸◕´+)----(▼ _ ▼)----( ◉ืൠ◉ื)----ㄟ(◑‿◐ )ㄏ----(●'◡'●)ノ♥----(。◕ˇ∀ˇ◕)----( ◔ ڼ ◔ )----( ´◔ ‸◔`)----(☍﹏⁰)----(♥◠‿◠)----ლ(╹◡╹ლ )----(๑꒪◞౪◟꒪๑)"

str_list_emoj = str_emoj.split('----')

if ((cf.get("configuration", "flag_wx_emoj")) == '1'):

flag_wx_emoj = True

else:

flag_wx_emoj = False

print(str_list_emoj)



# 设置节日祝福语

# 情人节祝福语

str_Valentine = cf.get("configuration", "str_Valentine")

print(str_Valentine)



# 三八妇女节祝福语

str_Women = cf.get("configuration", "str_Women")

print(str_Women)



# 平安夜祝福语

str_Christmas_Eve = cf.get("configuration", "str_Christmas_Eve")

print(str_Christmas_Eve)

# 圣诞节祝福语

str_Christmas = cf.get("configuration", "str_Christmas")

print(str_Christmas)



# 她生日的时候的祝福语

str_birthday = cf.get("configuration", "str_birthday")

print(str_birthday)

如果你愿意,可以在上面对时间的判断中,加入一些其他你想要的,这样你女友就更开心啦!后期如果有时间,我将会加上以上节日问候功能。😀

接着,开启微信机器人,为了程序的健壮性,自动判断一下操作系统,根据不同操作系统执行不同指令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 启动微信机器人,自动根据操作系统执行不同的指令

# windows系统或macOS Sierra系统使用bot = Bot()

# linux系统或macOS Terminal系统使用bot = Bot(console_qr=2)

if('Windows' in platform.system()):

# Windows

bot = Bot()

elif('Darwin' in platform.system()):

# MacOSX

bot = Bot()

elif('Linux' in platform.system()):

# Linux

bot = Bot(console_qr=2,cache_path=True)

else:

# 自行确定

print("无法识别你的操作系统类型,请自己设置")

设置完相关参数以后,我们再来学习一下,如何每天教女友学英语:

1
2
3
4
5
6
7
8
# 获取每日励志精句

def get_message():
r = requests.get("http://open.iciba.com/dsapi/")
note = r.json()['note']
content = r.json()['content']

return note, content

只有每天的问候和节日问候是仅仅不够的,我们必须时刻知道她的情绪指数,这里可以使用snowNlp或者jieba来做分析,但是为了能够在打包成exe可执行文件时使得程序尽可能小,我们采取直接调用接口的方式来做。代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 接收女友消息监听器

# 女友微信名

my_girl_friend = bot.friends().search(my_lady_wechat_name)[0]

# chats=my_girl_friend 表示接收消息的对象,也就是女友

# except_self=False 表示同时也接收自己发的消息,不需要接收自己消息的可以去掉

@bot.register(chats=my_girl_friend, except_self=False)

def print_others(msg):

# 输出聊天内容

print(msg.text)



# 做极其简单的情感分析

# 结果仅供参考,请勿完全相信

postData = {'data':msg.text}

response = post('https://bosonnlp.com/analysis/sentiment?analysisType=',data=postData)

data = response.text



# 情感评分指数(越接近1表示心情越好,越接近0表示心情越差)

now_mod_rank = (data.split(',')[0]).replace('[[','')

print("来自女友的消息:%s\n当前情感得分:%s\n越接近1表示心情越好,越接近0表示心情越差,情感结果仅供参考,请勿完全相信!\n\n" % (msg.text, now_mod_rank))



# 发送信息到文件传输助手

mood_message = u"来自女友的消息:" + msg.text + "\n当前情感得分:" + now_mod_rank + "\n越接近1表示心情越好,越接近0表示心情越差,情感结果仅供参考,请勿完全相信!\n\n"

bot.file_helper.send(mood_message)

教完女友学英语后,开始把我们的关心语发给她。这里涉及到wxpy模块的相关操作,很简单,看我的例子就会了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 发送消息给她

def send_message(your_message):

try:

# 对方的微信名称

my_friend = bot.friends().search(my_lady_wechat_name)[0]



# 发送消息给对方

my_friend.send(your_message)

except:



# 出问题时,发送信息到文件传输助手

bot.file_helper.send(u"守护女友出问题了,赶紧去看看咋回事~")

最后,就是如何每天定时发关心语给女友的问题了。首先来个while循环,365天无限关心😀

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# 来个死循环,24小时关心她

while(True):



# 提示

print("守护中,时间:%s"% time.ctime())



# 每天定时问候,早上起床,中午吃饭,晚上吃饭,晚上睡觉

# 获取时间,只获取时和分,对应的位置为倒数第13位到倒数第8位

now_time = time.ctime()[-13:-8]

if (now_time == say_good_morning):

# 随机取一句问候语

message = choice(str_list_good_morning)



# 是否加上随机表情

if(flag_wx_emoj):

message = message + choice(str_list_emoj)



send_message(message)

print("提醒女友早上起床:%s" % time.ctime())



# …………这下面还有很多代码,我就不列出来了…………



# 延时60秒

time.sleep(60)

最后,输入以下代码开始守护女友模式吧~

1
2
3
4
5
# 开始守护女友

t = Thread(target=start_care, name='start_care')

t.start()

使用教程

pip安装下列包:

  • pip install wxpy
  • pip install requests

设置以下内容:

config.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
[configuration]

# 设置女友的微信名称,记住,不是微信ID也不是微信备注

my_lady_wechat_name = 小强子



# 设置女友生日信息

# 若某一项月份或者日期不想设置,请输入99,不能留空

# 几月,注意补全数字,为两位数,比如6月必须写成06

birthday_month = 03

# 几号,注意补全数字,为两位数,比如6号必须写成08

birthday_day = 18



# 设置早上起床时间,中午吃饭时间,下午吃饭时间,晚上睡觉时间

# 若某一项时间不想设置,请输入99:00,不能留空

say_good_morning = 03:09

say_good_lunch = 03:10

say_good_dinner = 03:11

say_good_dream = 03:12



# 设置晚上睡觉问候语是否在原来的基础上再加上每日学英语精句

# 1表示是,0表示否

flag_learn_english = 1



# 设置所有问候语结束是否加上表情符号

# 1表示是,0表示否

flag_wx_emoj = 1



# 设置节日祝福语

# 情人节祝福语

str_Valentine = 亲爱的,情人节快乐!我想和你一起分享生命中的每一天,直到永远。



# 三八妇女节祝福语

str_Women = 嘿,女神节到了,祝我的女神开心快乐!你每天都是那么好看^_^



# 平安夜祝福语

str_Christmas_Eve = 宝贝,平安夜快乐,你吃苹果了吗?n(*≧▽≦*)n



# 圣诞节祝福语

str_Christmas = 小仙女,圣诞节快乐哦!(づ ̄3 ̄)づ╭❤~



# 她生日的时候的祝福语

str_birthday = 亲爱的,生日快乐,我已经给你准备好了礼物哦,明天你就能看到啦!(*@ο@*) 哇~

完整代码下载:

https://github.com/llqing/Guardian-of-girlfriend.git

演示图片

LLQ wechat
扫一扫上面的二维码可以关注我哦
坚持技术分享,您的支持将鼓励我继续创作!