歡迎光臨
每天分享高質量文章

程式員如何用Python瞭解女朋友的情緒變化?

(點擊上方快速關註並設置為星標,一起學Python)

作者:雲外孤島     鏈接:

https://www.cnblogs.com/cloudbird/p/10534658.html

好不容易有了女朋友,可相處起來總是磕磕碰碰。

有時候,你很想關心她,但是你太忙了,以至於她一直抱怨,覺得你不夠關心她。你暗自下決心,下次一定要準時發訊息給她,哪怕是幾句話,可是你又忘記了。你覺得自己很委屈?,但是她又覺得你不負責。

現在,再不用擔心了,用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′)—-Σ((( つ•̀ω•́)つ—-╰(*´︶`*)╯—-( ´´ิ∀´ิ` )—-(´∩`。)—-( ื▿ ื)—-(。ŏ_ŏ)—-( •ิ _ •ิ )—-ヽ(*΄◞ิ౪◟ิ‵ *)—-( ˘ ³˘)—-(; ´_ゝ`)—-(*ˉ﹃ˉ)—-(◍’౪`◍)ノ゙—-(。◝‿◜。)—-(ಠ .̫.̫ ಠ)—-(´◞⊖◟`)—-(。≖ˇェˇ≖。)—-(◕ܫ◕)—-(`◕‸◕´+)—-(▼ _ ▼)—-( ◉ืൠ◉ื)—-ㄟ(◑‿◐ )ㄏ—-(●’◡’●)ノ♥—-(。◕ˇ∀ˇ◕)—-( ◔ ڼ ◔ )—-( ´◔ ‸◔`)—-(☍﹏⁰)—-(♥◠‿◠)—-ლ(╹◡╹ლ )—-(๑꒪◞౪◟꒪๑)”

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 

專案持續更新,歡迎您star本專案~

    已同步到看一看
    赞(0)

    分享創造快樂