Python微信机器人实战:wxpy库安装、功能详解与聊天机器人开发

拾柒
拾柒
发布时间:2026-10-13| 3人浏览过
原创

本文详细介绍Python库wxpy的安装方法及核心功能,包括扫码登录、消息收发、好友统计等。通过结合图灵机器人API,实现自动回复聊天机器人,并提供代码示例与注意事项,帮助开发者快速构建微信自动化应用。

近期研究微信API时发现一个实用的Python库:wxpy。该库基于itchat,利用Web微信通信协议,实现了微信登录、消息收发、好友搜索及数据统计等功能。

本文将介绍该库的使用方法,并在文末演示如何构建一个聊天机器人。

是否感到兴奋与期待?

接下来,进入正题。

准备工作

安装过程十分简便,可直接从官方源进行下载和安装。

pip install -U wxpy

或者选择从豆瓣源进行安装。

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

模块初探

安装完成后,我们来测试几个基础功能。

1. 扫码登录微信

from wxpy import *
bot = Bot()

运行上述程序后,屏幕会弹出二维码,使用手机微信扫描即可完成登录。然而,上述程序存在一个缺点:每次运行都需要重新扫描二维码。不过,wxpy提供了贴心的缓存选项,如下所示。

bot = Bot(cache_path=True)

通过保存登录信息,后续运行无需再次扫描二维码。

2. 发送消息

bot.file_helper.send("hello")

这里的file_helper指的是微信中的文件传输助手。向文件传输助手发送一条消息,手机端将收到如下显示的消息。

3. 接收消息

我们实现一个收到消息后自动回复的功能。

@bot.register()
def print_message(msg): 
 print(msg.text) 
 return msg.text

# 进入Python命令行,让程序保持运行
embed()

当用户通过公众号管理平台向后端发送消息时,即可收到如下的消息回复。

4. 搜索好友及微信群

我们实现一个搜索公司群、定位老板并转发其消息的功能。

from wxpy import *

bot = Bot(cache_path=True)

# 定位公司群
company_group = bot.groups().search('公司微信群')[0]

# 定位老板

boss = company_group.search('老板大名')[0]

# 将老板的消息转发到文件传输助手
@bot.register(company_group)
def forward_boss_message(msg): 
 if msg.member == boss: 
 msg.forward(bot.file_helper, prefix='老板发言')

# 堵塞线程
embed()

对于喜欢在群内发布指令的老板,这是一个福音,从此无需再担心错过重要信息。

数据统计

wxpy的好友统计功能十分实用,可轻松统计好友的地理位置分布及性别分布。

以下代码中,统计了好友的分布情况,并打印出人数最多的10个地区。

from wxpy import *
bot = Bot(cache_path=True)
friends_stat = bot.friends().stats()

friend_loc = [] # 每一个元素是一个二元列表,分别存储地区和人数信息
for province, count in friends_stat["province"].iteritems():
 if province != "":
 friend_loc.append([province, count])

# 对人数倒序排序
friend_loc.sort(key=lambda x: x[1], reverse=True)

# 打印人数最多的10个地区
for item in friend_loc[:10]:
 print item[0], item[1]

统计出的地区分布数据绘制成图表如下。

由于用户身处上海,大多数好友也来自上海,上述图表如实反映了这一情况。

统计性别分布的代码如下。

for sex, count in friends_stat["sex"].iteritems():
 # 1代表MALE, 2代表FEMALE
 if sex == 1:
 print "MALE %d" % count
 elif sex == 2:
 print "FEMALE %d" % count

将性别分布数据生成图表如下。

可见好友中男性占大多数。男性朋友多,老婆更放心,嗯~~

聊天机器人

基于上述功能简介,我们来实现一个聊天机器人。

该聊天机器人基于图灵机器人。用户可在图灵机器人平台注册账号并创建机器人,该平台号称在中文语境下拥有最高智能度的机器人大脑。

# -*- coding: utf-8 -*-
import json
import requests
from wxpy import *

# 调用图灵机器人API,发送消息并获得机器人的回复
def auto_reply(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 "[tuling] " + result["text"]

bot = Bot(console_qr=True, cache_path=True)

@bot.register(mp)
def forward_message(msg): 
 return auto_reply(msg.text)

embed()

运行上述程序并向自己发送消息,可以看到如下的对话结果。

机器人十分有趣,一上来就要红包,还把我当作男朋友。

附录

wxpy文档:http://wxpy.readthedocs.io/zh/latest/ github地址:https://github.com/youfou/wxpy/blob/master/docs/index.rst

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。