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

授权转载自大数据分析和人工智能

作者:小马哥 爱数圈联合创始人

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)

以下为代码输出

机器人对我表白

在这特殊的日子里,机器人对我说了我爱你,也就是自己发给自己信息。还可以说更多其他的内容,只需要设置一下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"
            }
    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)

效果如下:

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

自动与群聊的效果:

参考资料

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

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

【今日机器学习概念】

Have a Great Definition

原文发布于微信公众号 - 大数据文摘(BigDataDigest)

原文发表时间:2018-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏即时通讯技术

达达O2O后台架构演进实践:从0到4000高并发请求背后的努力

达达创立于2014年5月,业务覆盖全国37个城市,拥有130万注册众包配送员,日均配送百万单,是全国领先的最后三公里物流配送平台。 达达的业务模式与滴滴以及Ub...

27430

云监控与服务器监控不同的6个原因

传统的IT监控,一直是针对以服务器为主的基础设施来进行的。然而如果是将应用部署在云端,那么监控会变得很不一样,因为别说监控,我们很有可能都接触不到服务器。对于应...

25970
来自专栏无原型不设计

更巧妙的表单设计与登陆访问

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具 你觉得一个普通人每天会使用多少次登陆功能呢?数据显示至少1...

32240
来自专栏CSDN技术头条

NoSQL数据库在现代应用程序中的作用

数据模型驱动不仅可以建立有效的应用程序,也可以有效地修改以合并新的特性。他们是“real-world”问题的解决和软件世界模仿现实世界的行为之间的桥梁。(是的,...

24050
来自专栏七夜安全博客

(原创)七夜在线音乐台开发 第二弹

21940
来自专栏何俊林

如何设计一个与微信相同的分享sdk

这几天在做公司内部的分享sdk要添加一个新功能,在自己阅读代码时,发现了很多问题,另外之前也有用户反馈了一些问题,自己只是做了一个维护,这次在做新功能调研时,发...

44270
来自专栏跨界架构师

分布式系统关注点——初识「高可用」

        咳咳,从这篇开始,正式拉开分布式系统关注点中,我认为第二重要的内容 —— 「高可用」。

11630
来自专栏云加头条

张青林:TXSQL是什么?云计算时代数据库核弹头

腾讯MySQL内核研发专家张青林在腾讯“云+未来”峰会的「开发者专场」做了主题为“TXSQL:云计算时代数据库核弹头”的技术内容分享,本次分享从五个方面介绍TX...

78420
来自专栏编程思想之路

带你解锁蓝牙skill(二)

紧接着带你解锁蓝牙skill(一)继续分析 3>,Pbap配置 Pbap:Phone Book Access Profile是说共享联系人协议,具体定义...

38190
来自专栏飞雪无情的博客

GitHub:全球最大的程序员基友社区

GitHub,不少做IT行业的朋友都听说过,甚至已经是GitHub用户了。这是一个基于Git的源代码托管服务的平台,它允许你使用标准的Git命令或者流程规范进行...

15320

扫码关注云+社区

领取腾讯云代金券