双十一!教你用Python感知女朋友的情绪变化?
轉自 |?Python編程開發? ??
文 |?云外孤島
導讀
程序員找個對象不容易啊,好不容易有了女朋友,可相處起來總是磕磕碰碰。
有時候,你很想關心她,但是你太忙了,以至于她一直抱怨,覺得你不夠關心她。你暗自下決心,下次一定要準時發消息給她,哪怕是幾句話,可是你又忘記了。你覺得自己很委屈????,但是她又覺得你不負責。
現在,再不用擔心了,用python就可以給女友定時發提示消息了,而且不會漏過每一個關鍵時刻,每天早上起床、中午吃飯、晚上吃飯、晚上睡覺,都會準時發消息給她了,而且還可以讓她學習英語單詞哦!
在生日來臨之時,自動發祝福語。在節日來臨之時,比如三八婦女節、女神節、情人節、春節、圣誕節,自動發問候語哦,再也不用擔心他說你沒有儀式感了????
最重要的是,可以實時知道女友的情感情緒指數,再也不用擔心女友莫名其妙生氣了。
編寫思路
為了方便快速開發,我們使用python中的wxpy模塊完成微信的基本操作。
首先,我們設置一個config.ini配置文件,并從這個配置文件開始讀取信息。這些參數一看就懂,所以無需多言。
↓上下滑動可查看完整內容↓
#?讀取配置文件
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 )----Σ(((?つ??ω??)つ----╰(*′︶`*)╯----(?′′??′?`?)----(′∩`。)----(?????)----(。?_?)----(????_????)----ヽ(*??????‵?*)----(???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)
如果你愿意,可以在上面對時間的判斷中,加入一些其他你想要的,這樣你女友就更開心啦!后期如果有時間,我將會加上以上節日問候功能。????
接著,開啟微信機器人,為了程序的健壯性,自動判斷一下操作系統,根據不同操作系統執行不同指令:
# 啟動微信機器人,自動根據操作系統執行不同的指令
# 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("無法識別你的操作系統類型,請自己設置")
設置完相關參數以后,我們再來學習一下,如何每天教女友學英語:
# 獲取每日勵志精句
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可執行文件時使得程序盡可能小,我們采取直接調用接口的方式來做。代碼如下:
# 接收女友消息監聽器
# 女友微信名
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當前情感得分:%s越接近1表示心情越好,越接近0表示心情越差,情感結果僅供參考,請勿完全相信!"?%?(msg.text, now_mod_rank))
? ? # 發送信息到文件傳輸助手
??? mood_message = u"來自女友的消息:"?+ msg.text +?"當前情感得分:"?+ now_mod_rank +?"越接近1表示心情越好,越接近0表示心情越差,情感結果僅供參考,請勿完全相信!"
? ? bot.file_helper.send(mood_message)
教完女友學英語后,開始把我們的關心語發給她。這里涉及到wxpy模塊的相關操作,很簡單,看我的例子就會了:
# 發送消息給她
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天無限關心????
? # 來個死循環,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)
最后,輸入以下代碼開始守護女友模式吧~
? ? # 開始守護女友
? ? t = Thread(target=start_care, name= start_care )
? ? t.start()
使用教程
pip安裝下列包:
[x] pip install wxpy
[x] pip install requests
設置以下內容:
[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/shengqiangzhang/examples-of-web-crawlers?
推薦一本對Python感興趣的書籍《Python進階》,是《Intermediate Python》的中文譯本,IntermediatePython這本書具有如下幾個優點:簡單、易讀、易譯。這些都不是重點,重點是:它是一本開腦洞的書。無論你是Python初學者,還是Python高手,它顯現給你的永遠是Python里最美好的事物。加下方助理小姐姐的微信回復:Python進階??即可領取(一定要發送關鍵詞或者備注哦)總結
以上是生活随笔為你收集整理的双十一!教你用Python感知女朋友的情绪变化?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 用锤子发射导弹,程序员的世界你不懂
- 下一篇: 专家解读:阅读AI论文对找工作有帮助吗?