本文首發於公眾號:小夭同學,同步更新個人部落格:故事膠片,轉載請署名。
注意:須有一個可以登入網頁版的微訊號
可以在 微信網頁版 登入一下檢視
1、需求場景
很多管理大量微信社群的小夥伴都有這樣的場景,當微信群的人數達到100人之後,將不能在通過分享的群二維碼加入群裡,必須自主新增好友後,手動去邀請才能加使用者拉入群眾,如果有大量的使用者加群,就只能一個一個手動的拉,想想心情就很美麗,手動哭泣。。。。
2、準備工作
1、一臺不關機的電腦 OR 一臺伺服器
2、 安裝以下相關依賴(有的不需要)
#coding=utf8
import requests
from requests import exceptions
from urllib.request import urlopen
from bs4 import BeautifulSoup
from urllib.parse import urlencode
from threading import Timer
import re
from wxpy import *
import schedule
import time
import http
import json
import datetime
import random
import os
import ctypes
複製程式碼
3、一個能夠在網頁版微信登入的賬號(重要)
4、該微信建立群聊,並儲存通訊錄中(重要)
3、程式碼部分
3.1、序號產生器器人
bot = Bot(cache_path=True,console_qr = 2)
bot.enable_puid('wxpy_puid.pkl')
rebot = bot.groups().search('Goodog') // 需要加入的群
複製程式碼
3.2、自動通過好友後傳送的加群提示
allText = '回覆關鍵詞加群: \n\n1、羊毛(加入羊毛優惠群)\n2、py(加入機器人體驗群)\n3、互粉(加入公眾號互粉群)\n4、更多群敬請期待\n\n -PS: 如果回覆關鍵字無效,請耐心等待手工拉入。'
複製程式碼
3.3、自動通過好友請求
@bot.register(msg_types=FRIENDS)
def auto_audit_msg(msg):
new_friend = bot.accept_friend(msg.card)
new_friend.send('我是Goodog小助手,如果你也想擁有一個跟我一樣功能的機器人請新增公眾號【小夭同學】留言獲取!')
new_friend.send_raw_msg(
raw_type=42,
raw_content='<msg username="infopush" nickname="小夭同學"/>'
)
new_friend.send(allText)
複製程式碼
3.4、關鍵字回覆傳送加群邀請連結
@bot.register(Friend, msg_types=TEXT)
def auto_add_msg(msg):
if 'py' in msg.text.lower():
rebot[0].add_members(msg.sender, use_invitation=True)
msg.sender.send('如果加入py群失敗,請等待人工邀請加入!!')
複製程式碼
3.5、邀請使用者入群后傳送群公告
invite_compile = re.compile(r'邀請"(.*?)"加入了群聊\s*$') // 判斷是否為新使用者入群
複製程式碼
3.5.1、新使用者入群傳送的公告
rebot_msg = '''@{atname}\u2005\u2005\u2005???歡迎加入群???\n
⚡⚡⚡⚡ 此群禁止發廣告,不然踢!!!\n
??? 無法登入網頁微信的問題,無有效解決辦法。\n
??? 怎樣提問:\n
1. 不要問無意義的問題 ?
2. 問問題前最好貼出截圖。?
3. 描述清晰,資訊充足。?
4. 如果想要原始碼請關注? 【小夭同學】? 回覆【幫助】獲取'''
複製程式碼
3.5.2、為加入的群進行註冊,以用來抓取群訊息
@bot.register(rebot, NOTE) // NOTE 為系統通知
def invite_group(msg):
""" 群通知處理 """
text = msg.text # 通知的內容
member = msg.member.name # 訊息傳送者暱稱
invite_names = invite_compile.findall(text) # 判斷是否是加入了新使用者
if invite_names: # 用於邀請
invite_name = invite_names[0] # 加入者的暱稱
if rebot_msg:
note = rebot_msg.format(atname=invite_name)
msg.sender.send(note) # 向群裡傳送歡迎語句
return
複製程式碼
4、執行機器人
while True:
schedule.run_pending()
time.sleep(1)
複製程式碼
5、Git
程式碼已上傳 Github