520 | 机器人竟然对我表白了?!用Python假装自己有女朋友(附代码)

511 阅读4分钟
原文链接: click.aliyun.com

520这一天,也是网络情人节。就在今天,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)

以下为代码输出

feffac929bf722cec9ba85307b70824a822f40d8

机器人对我表白

在这特殊的日子里,机器人对我说了我爱你,也就是自己发给自己信息。还可以说更多其他的内容,只需要设置一下send()内容既可。具体代码如下:


''' 给自己发送“我爱你“ ''' # 在Web微信中把自己加为好友 bot.self.add() bot.self.accept() # 发送消息给自己 bot.self.send(" 520,我爱你!" )

下图是运行效果:

b5d933193df412b0bd00470f80645e6f643da8cc

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

在这么特殊的一天,你可以使用聊天机器人指定某个人进行聊天,大胆说出自己平常不敢说的话。即使他/她给你回复了,你不好意思回复他。机器人可以帮你自动回复。如何实在不好意思和她聊天,也可以忽略,不用自动回复。

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

''' 指定聊天对象,大胆进行表白吧 ''' #指定聊天对象,并发送你想说的话 #还可以发送图片,视频,文件或者动图等。可以试一下
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 效果如下: 1099c7fe3143e6ea52deb46ba04055dd0d120fcb
自动回复群里的消息

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

''' 指定一个群聊,并且自动回复群里的消息 ''' 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

效果如下:

1054d9b345c315fdf48d57d21d9332dae5fdc26b

自动与所有人聊天

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

#给所有人自动聊天 def auto_replay(text) : url = "http://www.tuling123.com/openapi/api" api_key = "你注册的api key" payload = { "key":api_key, "info":text, "userid": "123456" } r = requests.post(url,data=json.dumps(payload)) result = json.loads(r.content) return "你好"+result[ "text"] #给所有人自动聊天 @bot.register() def print_message(msg) : print(msg.text return auto_replay(msg.text)

效果如下:

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

eeb18ef6a80c6b028d7df0e97bf4037d7e52a116

自动与群聊的效果:

62c7e3979e6259e7c2fd1bbf660b892b12c47e08



原文发布时间为:2018-05-19

本文作者:文摘菌

本文来自云栖社区合作伙伴“大数据文摘”,了解相关信息可以关注“ 大数据文摘 ”。