Python實現微信自動拉群機械人

2021-08-08 18:21:18 字數 2157 閱讀 2480

**實現

我們的核心需求主要是兩個:

讀取使用者新增好友的驗證資訊

根據驗證資訊,傳送不同的邀請鏈結

首先,我們要去建立乙個機械人的例項,**如下

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_members 方法來邀請使用者加入到群聊。由於我們的群已經到了 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 的方法來判斷新增好友的資訊是否存在,如果返回的結果為真,就呼叫邀請使用者的方法。

基礎環境安裝

由於我們的主機執行的是 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 -u wxpy

至此,就完成了基礎環境搭建工作,機械人實現**就可以順利執行在此云主機上了。

**覆盤及設計理念解析

比如我監聽的事 friends 訊息,同樣的也可以監聽好友訊息等等。通過不同的監聽模式來實現我們的具體功能是核心。如果我們把**精簡一下,最終的**就是

#!/usr/bin/env python3

# coding: utf-8

from wxpy import *

bot = bot()

@bot.register(msg_types=friends)

def new_friends(msg):

處理好友邏輯**

最少的情況下只需要這些**,就足夠我們啟動機械人了。當然,這樣並不是最佳實踐,**的可讀性還有待提高。

Python分析微信群使用者資訊

別人開發出來的東西 貢獻出來了 你可以免費使用 但是不能用作商用 所以叫開源 一般都會有乙個協議 叫遵守bsd協議 生活中哪些不是開源的 windows系統 mac os系統 開源的 linux系統 本節課的python 開啟pycharm 選擇terminal 輸入 pip install itc...

微信群助手(自動整理拼車資訊)

usr bin env python coding utf 8 import itchat,sys reload sys sys.setdefaultencoding utf8 def man chatroomname itchat.auto login hotreload true chatroo...

python appium實現企業微信自動打卡

import time def init self,desired caps,image name self.url self.driver webdriver.remote self.url,desired caps self.driver.implicitly wait 10 self.desi...