你知道如何利用python玩转微信吗,你是否因为工作忙没时间陪女朋友? 今天给大家介绍一个利用微信个人号API库wxpy实现微信聊天机器人,只需要寥寥数行代码,它就能够自动陪朋友聊天,消息秒回。而且无所不知,甚至还能问天气,讲笑话。 从此妈妈再也不用担心我会错过微信消息了。

wxpy介绍

wxpy是一个微信机器人库,在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。 支持一些常见的场景:

  • 控制路由器、智能家居等具有开放接口的玩意儿
  • 运行脚本时自动把日志发送到你的微信
  • 加群主为好友,自动拉进群中
  • 跨号或跨群转发消息
  • 自动陪人聊天
  • 逗人玩

总之,利用wxpy我们可以实现微信个人号的各种自动化操作。

实现思路

在这里我们再介绍一个人工智能机器人微软小冰,它是一个领先的跨平台人工智能机器人。在微信搜索人工智能小冰微信公众号,就可以找到并使用它。那么我们的思路就是:利用wxpy登录微信,然后将朋友发送回来的消息发送给小冰,然后再将小冰的消息发送给朋友。说白了,就是将自己的微信作为一个中间人,利用小冰当自己的私人助理。

前期准备

安装python环境

登录python官网,找到适合你操作系统的python安装包,并下载安装。推荐3.4以上版本。

由于本文主要不是讲解python环境的搭建,再次不详细叙述,大家可以自行搜索教程。再次假定你已经装好并配置好了环境变量。

安装wxpy库

打开cmd或者powershell. 使用pip命令安装wxpy.

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

安装好之后,开始编写代码。

代码实现

代码的实现很简单,按照我们前面的思路实现即可。具体步骤请看代码注释,并参考wxpy文档。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/env python
#-*-coding:utf-8-*-

from wxpy import *

# 初始化一个机器人对象
bot = Bot(console_qr=False, cache_path=True)

# 朋友的微信备住名称
name = "your friend's name"
# 从朋友列表里搜索该朋友
friend = ensure_one(bot.friends().search(name))
# friend = bot.file_helper # 可以使用文件助手测试

# 从公众号里搜索小冰
xiaobing = ensure_one(bot.mps().search("人工智能小冰"))

my_bot = "小川"
# 给朋友发个消息
friend.send("我是主人的助理%s,现在由我全权代理主人与你通话" % my_bot)

# 注册一个装饰器,接收小冰发来的消息,发送给朋友
@bot.register(xiaobing)
def reply_friend(msg):
if msg.type == "Text" and "小冰" in msg.text:
# 要是朋友问你是谁,小冰回答他是小冰,就替换成自己的名字,防止露馅
message = msg.text.replace("小冰", my_bot)
friend.send(message)
else:
msg.forward(friend)

# 注册一个装饰器,接收朋友发来的消息,发送给小冰
@bot.register(friend)
def replay_xiaobing(msg):
msg.forward(xiaobing)


# 启动并阻塞
embed()

将代码保存为文件,例如名叫chat.py.直接使用python命令运行即可。

1
python chat.py

首次运行,会弹出二维码,使用微信扫描登录。

效果如图所示

就是这么简单,有兴趣的朋友可以拿去试试了。

最后

建议大家尽量使用小号来测试,从wxpy文档获悉,使用机器人存在一定概率被限制登录的可能性。

主要表现为无法登陆 Web 微信 (但不影响手机等其他平台)。

利用wxpy可以做很多 好玩的事情,大家可以进行展开你们的想象力,有什么好玩的想法,可以在评论区交流。

参考:

wxpy中文文档