如何用Python做一个微信机器人自动拉群

作者:西秦公子 时间:2023-04-07 10:50:09 

引言

微信群的用户添加逻辑是 —— 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来。这样,联系人员的私人微信会添加大量陌生人,给其带来不必要的打扰,而且纯人工操作,也容易出现纰漏。

那么,是否可以通过代码,做一个自动拉群机器人呢? 由微信机器人来实现自动加群功能,一劳永逸解决人工拉群的麻烦。

当然可以。西秦公子 就用Python 创造了一个微信自动拉群机器人,并把它部署运行在UCloud云平台上。

现在,他把机器人构建过程及代码 都分享了出来,一起来看看吧~

我们在 UCloud 上运行了 Linux中国 的翻译平台,同时,最近我们的另外一个项目 运维密码 发展迅猛,体验群很快就达到了 100 人,达到了100人后,就没有办法让用户通过扫描二维码来加群,只能让用户加我们的微信,然后由我们来把用户拉群。这样十分不便,而且也容易出现纰漏。

于是我们便考虑在云主机上,运行一个微信机器人,由微信机器人来实现加群,免去手动拉群的麻烦。具体实现过程如下:

目录

  • 代码实现;

  • 部署到 UCloud;

  • 代码复盘 及 设计理念解析;

代码实现

我们的核心需求主要是两个:

  • 读取用户添加好友的验证信息

  • 根据验证信息,发送不同的邀请链接

首先,我们要去创建一个机器人的实例,代码如下


from wxpy import *
bot = Bot('bot.pkl',console_qr=True)

这两行代码引入了 wxpy ,并生成了一个 bot 实例。这个实例会将我们的登陆信息保存到 bot.pkl 中,这样我们在短时间内的机器人重启时,就不用重复登陆了。

接下来,我们定义一个函数来校验用户的验证信息中,是否有我们需要的关键词。


'''
验证信息
'''
def valid_msg(msg):
return '运维密码' in msg.text.lower()

并且定义一个方法,用来邀请用户加入到我们的运维密码工作群中。


'''
定义邀请用户的方法
'''
def invite(user):
group = bot.groups().search('“运维密码”体验群')
group[0].add_members(user, use_invitation=True)

这个里面的关键是我们要使用bot的groups方法来获取到所有的用户,并使用搜索,取到我们想要的数据。

在这里我是使用了数据的 第一个结果,当然,你也可以在搜索时,使用 ensure_one 方法来保证只返回一个结果,而不是一个数组。

找到我们要邀请的用户以后,就可以使用 group 的 add_memebers 方法来邀请用户加入到群聊。由于我们的群已经到了100人的限制。所以这里将第二个参数设置为 true 。

上述的两个方法,我们基本完成了我们需要使用的部分。

接下来,我们就要让机器人来自动处理我们的请求消息了。


'''
处理加好友信息
'''
@bot.register(msg_types=FRIENDS)def new_friends(msg):
user = msg.card.accept()
if valid_msg(msg):
 invite(user)
else:
 user.send('Hello {},你忘了填写加群口令,快回去找找口令吧'.format(user.name))

这里最关键的是第一行的 @bot.register(msg_types=FRIENDS),这行代码是指注册一个 * ,来监听类型是 FRIEDNS 的消息,也就是加好友的消息。

然后定义了一个新的函数 new_friends(msg),在这个函数里,我们定义 user 为接受了用户的信息,并获取他的身份信息。

并且调用 valid_msg 的方法来判断添加好友的信息是否存在,如果返回的结果为真,就调用邀请用户的方法。

部署到UCloud

接下来我们尝试将项目部署到UCloud云主机上:

创建主机

  • 注册 UCloud - 专业云计算服务商

  • 点击左侧的 云主机,然后点击 创建主机

  • 右侧选择 付费方式,点击 立即购买

  • 在支付确认页面,点击 确认支付

购买成功后回到主机管理列表,如下所示:

这里注意记住你的外网IP,下面的ip替换成你的

基础环境安装

由于我们的主机运行的是 CentOS 7.2 ,自带的是 Python 2.7.5 ,而 wxpy 需要运行在 Python 3 下,所以我们首先进行的是 Python 3 的安装。

执行如下命令来安装 Python 3


yum install epel-release
yum install python34

接下来安装 Pip


yum install python34-setuptools
easy_install-3.4 pip

安装完成 Python 3 和 pip ,接下来我们就可以开始安装 wxpy 了

在命令行中执行


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

至此,就完成了基础环境搭建工作,机器人实现代码就可以顺利运行在此云主机上了。

代码复盘 及 设计理念解析

来源:http://www.safebase.cn/article-217851-1.html

标签:python,微信,自动,拉群,机器人
0
投稿

猜你喜欢

  • Python统计纯文本文件中英文单词出现个数的方法总结【测试可用】

    2023-05-14 08:03:02
  • 使用python BeautifulSoup库抓取58手机维修信息

    2022-08-10 01:55:20
  • python pickle 和 shelve模块的用法

    2023-11-07 22:41:11
  • 完整java开发中JDBC连接数据库代码和步骤

    2024-01-21 19:27:23
  • MySQL 的启动和连接方式实例分析

    2024-01-21 09:06:03
  • Python中Pyenv virtualenv插件的使用

    2021-10-25 08:07:19
  • Javascript非构造函数的继承

    2024-04-10 10:54:14
  • Jupyter notebook中5个有趣的魔法命令分享

    2021-11-28 23:26:30
  • 利用OpenCV进行对象跟踪的示例代码

    2023-05-28 14:14:54
  • python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析

    2022-07-08 06:45:02
  • Python实现图片批量加入水印代码实例

    2022-07-13 10:47:04
  • 一些让Python代码简洁的实用技巧总结

    2022-02-06 11:03:25
  • Python+OpenCV图像处理——打印图片属性、设置存储路径、调用摄像头

    2022-10-12 22:54:02
  • 简单谈谈Python中的闭包

    2021-10-20 12:50:46
  • ThinkPHP实现将本地文件打包成zip下载

    2024-05-11 09:48:29
  • jquery精度计算代码 jquery指定精确小数位

    2024-05-21 10:20:21
  • 基于Python Pygame实现的画饼图游戏

    2023-10-25 18:30:23
  • 清除代码异味

    2011-05-21 08:34:00
  • 详解Python:面向对象编程

    2023-10-26 16:17:53
  • Windows下Anaconda的安装和简单使用方法

    2022-04-21 16:46:50
  • asp之家 网络编程 m.aspxhome.com