社区所有版块导航
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 造一个聊天机器人陪自己聊天!

大数据分析和人工智能 • 5 年前 • 723 次点击  


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

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

但是现在我们可以利用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
 
723 次点击