Python社区  »  Python

寂寞时,用Python 造一个聊天机器人陪自己聊天!

大数据分析和人工智能 • 12 月前 • 167 次点击  


都市里,谁不寂寞、谁没有秘密呢?

有些心事注定只能一个人说,

但是现在我们可以利用python聊天机器人,它永远不会背叛你,并且衷心与你。具体什么情况,我们慢慢看看怎么实现的。



运行环境



运行平台:Mac
Python版本:Python3.6
IDE:spyder


wxpy库介绍


wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。


wxpy一些常见的场景:


一些常见的场景

控制路由器、智能家居等具有开放接口的玩意儿

跑脚本时自动把日志发送到你的微信

加群主为好友,自动拉进群中

充当各种信息查询

转发消息

逗人玩

...

# 脑洞太大的就不提了...

总而言之,可用来实现各种微信个人号的自动化操作


安装wxpy


安装wxpy非常简单,如果你拥有pip,请直接按照Github中的方法安装:

从 PYPI 官方源下载安装 (在国内可能比较慢或不稳定):


'''

pip3 install -U wxpy

从豆瓣 PYPI 镜像源下载安装 (推荐国内用户选用):

pip install -U wxpy -i "https://pypi.doubanio.com/simple/"


登陆微信


wxpy 使用起来非常简单,我们只需要创建一个bot 对象,程序运行后,会弹出二维码,扫描二维码后显示登陆成功。为了能自动保存信息,不需要每次扫码,只需要设置cache_path=True. 同时在项目文件夹下,多了一个wxpy.pkl文件。

'''
from wxpy import *
#在初始化时便会执行登陆操作,需要手机扫描登陆。
bot = Bot()
#自动保存登录信息,就不需要每次扫二维码
bot = Bot(cache_path=True)


以下为代码输出


与机器人聊天


要把每一天都当作是520,告诉自己我爱自己,给自己鼓励。用机器人对自己说我爱你,也就是自己发给自己信息。还可以说更多其他的内容,只需要设置一下send()内容既可。具体代码如下:

'''
给自己发送“我爱你“
'''

# 在Web微信中把自己加为好友
bot.self.add()
bot.self.accept()

# 发送消息给自己
bot.self.send(" 520,我爱你!")



下图是运行效果:



指定聊天对象


    使用机器人,你可以使用聊天机器人指定某个人进行聊天,大胆说出自己平常不敢说的话。即使他/她给你回复了,你不好意思回复他。机器人可以帮你自动回复。如何实在不好意思和她聊天,也可以忽略,不用自动回复。完整代码,请文末扫码获得


    比如,找到微信昵称或者备注为”冯彬“的好友,然后对他说,“亲,在干嘛呢”。并且自动回复 “嗯,收到你的消息了”。


'''
指定聊天对象,大胆进行表白吧
'''

#指定聊天对象,并发送你想说的话
#还可以发送图片,视频,文件或者动图等。可以试一下

my_friend = bot.friends().search('冯彬')[0]
#found = ensure_one(my_friend) //确保找到的是唯一,避免重复
my_friend.send("亲,在干嘛呢")
#如何指定聊天回复你了,聊天机器人自动回复设置好的消息。

@bot.register(my_friend)
def reply_my_friend(msg):
    return '{} ,收到你的消息了' .format(msg.text, msg.type)

'''
指定聊天对象,聊天机器人拒绝回复他的消息
'''

ignore_friend = bot.friends().search('冯彬')[0]
@bot.register(ignore_friend)
def ignore(msg):
    return



效果如下:


自动回复群里的消息


群里的消息太多,回复不过来?可以使用聊天机器人自动回复设置好的内容。比如回复群名为 “[志愿者]数据圈”的所有消息,并且不想回复的时候,也可以直接忽略。

'''
'''
指定一个群聊,并且自动回复群里的消息
'''
boring_group = bot.groups().search('[志愿者]数据圈')[0]

@bot.register(boring_group)
def reply_my_friend(msg):
    return '{} ,收到你的消息了,马上处理'.format(msg.text, msg.type)

#忽略群里的消息

@bot.register(boring_group)

#忽略群的消息

def ignore(msg):
    #什么也不做
    return


效果如下:



请自动与所有人聊天


好友或者微信群太多,回复不过来?聊天机器人一键回复所有人的消息,并且能并行执行。自动聊天机器人是在图灵机器人的基础上,进行二次开发实现。因为图灵的机器人已经很智能了,可以回答很多问题,比如当地的天气、名词解释等内容。图灵机器人可以在图灵网站注册账号,并且创建自己的机器人。比如创建一个叫做“我的机器人的”自动聊天机器人,然后与所有人进行聊天。完整代码,请文末扫码获得

'''
#给所有人自动聊天
def auto_replay(text):
    url = "http://www.tuling123.com/openapi/api"
    api_key ="你注册的api key"
    payload = {
            "key":api_key,
            "info":text,
            "userid":"123456"
            }



效果如下:


自动聊天机器人可以智能的回答当地的天气,并且提醒多加衣服



自动与群聊的效果


参考资料


更多关于wxpy库的使用,请参考文档: 

http://wxpy.readthedocs.io/zh/latest/index.html

完整代码,请文末扫码获得


更多python实战内容,推荐一个Python实战圈。提供清晰的多系统学习路径、快速学习运用python的圈子圈主是世界500强高级软件工程师,多年编码经验。具体可以提供以下内容:

【基础】0基础入门python,24小时有人快速解答问题;

【提高】40多个项目实战,老手可以从真实场景中学习python;

【直播】不定期直播项目案例讲解,手把手教你如何分析项目;

【分享】优质python学习资料分享,让你在最短时间获得有价值的学习资源;圈友优质资料或学习分享,会不时给予赞赏支持,希望每个优质圈友既能赚回加入费用,也能快速成长,并享受分享与帮助他人的乐趣。

【人脉】收获一群志同道合的朋友,并且都是python从业者

【价格】 本着布道思想,只需 50元 加入能保证学习效果圈子

长按下图二维码,了解python实战圈详情。








今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/VuMhZg73r7
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/23018
 
167 次点击  
分享到微博