社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

脱单狗福利!用 Python 哄女朋友开心

Python网络爬虫与数据挖掘 • 4 年前 • 292 次点击  


作者 | 云外孤岛

链接:cnblogs.com/cloudbird/p/10534658.html


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

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

于是!你决定使用当今最前沿的互联网云服务,实现自动算命功能。

以科学的手段拯救爱情。

编写思路

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

1、设置一个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)

如果你愿意,可以在上面对时间的判断中,加入一些其他你想要的,这样你女友就更开心啦!

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

# 启动微信机器人,自动根据操作系统执行不同的指令
# 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("无法识别你的操作系统类型,请自己设置")

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

# 获取每日励志精句
def get_message():
    r = requests.get("http://open.iciba.com/dsapi/")
    note = r.json()['note']
    content = r.json()['content']
    return note,content

4、只有每天的问候和节日问候是仅仅不够的,我们必须时刻知道她的情绪指数,这里可以使用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)

5、教完女友学英语后,开始把我们的关心语发给她。这里涉及到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"守护女友出问题了,赶紧去看看咋回事~")

6、如何每天定时发关心语,首先来个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就关注:datanami




近期文章:

这里有8个流行的Python可视化工具包,你喜欢哪个?

那个14岁上大学、17岁读博、24岁成教授的天才神童,如今怎样了?

用Python制作动态二维码,真的只需要一行代码!

扔掉 Excel ,神级编辑器统一表格与 Python

从零开始写一个爬虫实战

用AI打个电话骗走22万欧元,克隆你的语音只需5秒录音



点「在看」的人都变好看了哦
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39735
 
292 次点击