成品下载地址:https://www.pan38.com/yun/share.php?code=JCnzE 提取密码:1131
这个实现包含三个主要文件,提供了完整的微信自动化功能:
自动通过好友请求并发送欢迎语基于关键词的智能自动回复系统主动搜索添加潜在客户功能多线程处理保证各功能独立运行完善的配置系统和工具函数源码部分:【仅供学习参考用途】
代码语言:txt复制
import itchat
import time
from PyOfficeRobot.core.WeChatType import WeChat
from threading import Thread
class WeChatAutoTool:
def __init__(self):
self.wx = WeChat()
self.friend_requests = []
self.reply_rules = {
"你好": "您好,我是AI助手,请问有什么可以帮您?",
"价格": "产品价格表请查看:http://example.com/price",
"客服": "请拨打客服热线:400-123-4567"
}
self.auto_add_keywords = ["合作", "咨询", "采购"]
def login(self):
"""登录微信"""
itchat.auto_login(hotReload=True)
print("微信登录成功")
def monitor_friend_requests(self):
"""监控好友请求"""
@itchat.msg_register(itchat.content.FRIENDS)
def deal_with_friend(msg):
if msg['Type'] == 'Friends':
self.friend_requests.append(msg)
print(f"收到好友请求: {msg['UserName']}")
itchat.run()
def auto_accept_friends(self):
"""自动通过好友请求"""
while True:
if self.friend_requests:
msg = self.friend_requests.pop(0)
itchat.accept_friend(msg['UserName'])
print(f"已通过好友: {msg['UserName']}")
# 发送欢迎语
itchat.send("感谢添加,我是AI助手,请输入关键词获取帮助!", msg['UserName'])
time.sleep(5)
def auto_reply(self):
"""自动回复消息"""
@itchat.msg_register([itchat.content.TEXT])
def text_reply(msg):
content = msg['Text']
for keyword, reply in self.reply_rules.items():
if keyword in content:
return reply
return "已收到您的消息,稍后人工回复!"
itchat.run()
def auto_add_friends(self, search_keyword):
"""自动搜索添加好友"""
while True:
try:
friends = itchat.search_friends(name=search_keyword)
for friend in friends:
if not friend['IsFriend']:
itchat.add_friend(friend['UserName'], verifyContent="商务合作")
print(f"已发送好友请求给: {friend['NickName']}")
time.sleep(60) # 每分钟检查一次
except Exception as e:
print(f"添加好友出错: {str(e)}")
time.sleep(300)
def start_all(self):
"""启动所有功能"""
self.login()
# 启动监控线程
Thread(target=self.monitor_friend_requests).start()
Thread(target=self.auto_accept_friends).start()
Thread(target=self.auto_reply).start()
# 启动自动加好友
for keyword in self.auto_add_keywords:
Thread(target=self.auto_add_friends, args=(keyword,)).start()
if __name__ == "__main__":
tool = WeChatAutoTool()
tool.start_all()
# 自动回复规则配置
REPLY_RULES = {
"你好": ["您好!", "有什么可以帮您?"],
"价格": ["我们的产品价格如下...", "详情请访问官网"],
"帮助": ["可用关键词:价格、客服、帮助"]
}
# 自动添加好友关键词
ADD_KEYWORDS = ["采购", "合作", "代理"]
# 微信控制参数
WECHAT_CONFIG = {
"hot_reload": True,
"login_callback": None,
"exit_callback": None
}
# 频率限制
RATE_LIMIT = {
"add_friend": 60, # 加好友间隔(秒)
"send_msg": 5 # 发消息间隔(秒)
}
time
import random
from datetime import datetime
def get_now_time():
"""获取当前格式化时间"""
return datetime.now().strftime("%Y-%m-%d %H:%M:%S")
def random_sleep(base=1, variance=3):
"""随机休眠时间"""
time.sleep(base + random.random() * variance)
def log_operation(action, target, status="成功"):
"""记录操作日志"""
print(f"[{get_now_time()}] {action} {target} {status}")
def validate_wechat_connection():
"""验证微信连接状态"""
try:
itchat.get_friends(update=True)
return True
except:
return False