python制作微信个人二维码_Python制作微信机器人,随时陪你聊天

之前给大家分享了怎么用 itchat 库制作微信朋友性别统计图,今天给大家介绍一个更强大的库:wxpy 库。

wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展,wxpy 库可能是最优雅的微信个人号 API。

今天只用到 wxpy 库其中的一个小功能:陪人聊天。

安装

wxpy 库支持 Python 3.4-3.6 版本和 2.7 版本。如果你的电脑只安装了一个 Python 版本,直接用下面命令安装:

Python

pip install wxpy

1

pip install wxpy

如果你电脑同时装了 2.7 和 3.x 版本,将上方命令中的 “pip” 替换为 pip3 或 pip2,可确保安装到对应的 Python 版本中。

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

Python

pip install -U wxpy

1

pip install -U wxpy

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

Python

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

1

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

我用的 Python 版本是 3.6,代码编辑工具是 Pycharm。

安装完成后在代码编辑工具 Pycharm 中导入 wxpy 库。

登陆微信

直接调用 wxpy 库里的 Bot() 方法就会弹窗微信二维码,扫描即可登录微信。

Python

# 导入模块

from wxpy import *

import requests

import json

# 初始化机器人,扫码登陆

bot = Bot()

1

2

3

4

5

6

# 导入模块

fromwxpyimport*

importrequests

importjson

# 初始化机器人,扫码登陆

bot=Bot()

登录后就可以对微信进行相关操作了。

创建图灵机器人

接下来需要在图灵机器人官网注册账号。

F471FBD390614F0EC15197EC5B08939A.jpg

登录后创建机器人,填写应用终端、应用行业、应用场景。

DEF11738E9F597AD0AE5343CE0FEC928.jpg

创建成功后就能得到 apikey。

2AAB7A9EEFB9868510B1D1BDD7436E76.jpg

接口请求 API

将刚注册获取的 apikey 和用户输入的信息 info 作为 post 请求的参 data。直接用 request.post 请求图灵机器人 api 地址,加上刚才的 data。这样就完成了对图灵机器人接口的请求。

Python

robot = Bot()

def talk_robot(info='你好啊'): #定义一个默认参数

api_url = 'http://www.tuling123.com/openapi/api' # 图灵接口url

apikey = 'xxxxxxxxxx' # 注册图灵生成key

data = {'key': apikey, 'info': info}

r = requests.post(api_url, data=data).text

1

2

3

4

5

6

robot=Bot()

deftalk_robot(info='你好啊'):#定义一个默认参数

api_url='http://www.tuling123.com/openapi/api'# 图灵接口url

apikey='xxxxxxxxxx'# 注册图灵生成key

data={'key':apikey,'info':info}

r=requests.post(api_url,data=data).text

用 requests.post 处理后的返回的数据是 json 格式,比如我输入的 info 参数是「大家好」,返回的 json 语句是:

Python

{"code":100000,"text":"看来你心情还不错哦!"}

1

{"code":100000,"text":"看来你心情还不错哦!"}

当然,这个参数对应的回复不止一条,这是随机回复的其中一条,也有可能回复:

Python

{"code":100000,"text":"你好,我就好。"}

1

{"code":100000,"text":"你好,我就好。"}

我们现在需要把 json 语句的值提取出来,使用 json.loads(r)[‘text’] 方法提取出 text 值。

Python

response = json.loads(r)['text']

return response

1

2

response=json.loads(r)['text']

returnresponse

创建话痨机器人

wxpy 提供了注册消息的方法,可以简单将各种类型的消息注册并自定义处理方式。注册消息使用简单的 @bot.register() 方法。

定义一个回复朋友消息的函数,并将回复的 message 这个字符串使用 format() 方法格式化后作为上面 talk_robot() 函数的入参,返回机器人回复的消息。

当然仅仅写以上内容,会导致你的程序主程序运行结束自然退出。wxpy 给出了embed() 方法,在程序末尾(或其他你想要暂停调试的地方)加上 embed() 方法就可以让程序保持运行,同时进入Python命令行。

Python

@robot.register()

def reply_my_friend(msg):

message = '{}'.format(msg.text)

response = talk_robot(info=message)

return response

embed()

1

2

3

4

5

6

@robot.register()

defreply_my_friend(msg):

message='{}'.format(msg.text)

response=talk_robot(info=message)

returnresponse

embed()

这样,我的小号就化身成为话痨微信机器人,我们在群里不管说什么,他都会搭话。

9CE3FE60731E573535362A7912771615.jpg

创建微智能机器人

如果技术群里人多的在讨论问题的话,这个话痨就会显得不是太智能,这时我们可以加个判断条件对 TA 进行优化下,只有 @TA 时,TA 才会搭话。

Python

@robot.register()

def print_group_msg(msg):

if msg.is_at:

message = '{}'.format(msg.text)

response = talk_robot(info=message)

return response

embed()

1

2

3

4

5

6

7

@robot.register()

defprint_group_msg(msg):

ifmsg.is_at:

message='{}'.format(msg.text)

response=talk_robot(info=message)

returnresponse

embed()

来看下这个微智能的机器人。

2E05A8D7FFE89515C904AE68079C4139.jpg

这样,简单的两款微信机器人就完成了,跃跃欲试的小伙伴赶紧试试吧。请记住用自己的小号来登录做成机器人,如果用自己常用的微信做成话痨机器人的话,你的各微信群会爆炸的,不明所以的吃瓜群众还以为你的微信中病毒了呢。

用小号做话痨机器人的话也要注意把小号关注的公众号取消关注,因为一旦公众号有推文过来,你的话痨机器人就会搭话,而一般的公众号都会设置关键词回复和收到消息回复的功能,所以他们会一直聊下去,但是这个免费的 api 接口每天的请求次数是有限制的,每天免费 5000 次请求。如果超过这个次数限制的话,TA 就只会说一句话:亲爱的,当天请求次数已用完。当然,土豪请忽略我上面说的这句话。

如果群人数比较多,很活跃的话,可以用其他手机号再注册图灵获取一个 apikey。

源码很简单,可以自己敲下,如需参考我的源码,在我公众号回复「wxpy」获取源码。

优化

以上创建的机器人只能识别中文和个别的英文,不识别表情、图片、语音、视频,这个后期会逐步优化的。

今天讲的只是 wxpy 库冰山一角的功能,还有很多有意思的功能:

发送文本、图片、视频、文件;

通过关键词或用户属性搜索 好友、群聊、群成员等;

获取好友/群成员的昵称、备注、性别、地区等信息;

加好友,建群,邀请入群,移出群等等;

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值