
通过RPA选择采用“物理点击”或“模拟真人操作”
自动搜索,自动备注,自动打标签,自动添加.微信自动加人
频率控制:必须支持自定义时间间隔,比如每5-15分钟随机时间加一个。这是避免被判定为“频繁添加”的关键。
验证语设置:支持设置多条不同的验证语,并能随机发送,避免重复内容引起对方反感或被系统识别为营销号
。数据导入:能方便地从 Excel 或文本文件中批量导入手机号或微信号
账号管理:如果你有多个微信号需要操作,选择支持多账号同时运行且节奏独立的系统,可以更接近真实使用状态。这种RPA是怎么实现大量加好友的效果呢,请看下面代码。
声明:仅用于学习测试用途,请勿用于违规场景,作者对这款工具和相关代码拥有最终的解释权
import pyautogui
import time
import random
import openpyxl
import pygetwindow as gw
import logging
# 配置日志
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# ================== 配置参数 ==================
EXCEL_PATH = "contacts.xlsx" # 存放手机号的Excel文件路径
SHEET_NAME = "Sheet1" # 工作表名
COLUMN = 'A' # 手机号所在列
VERIFY_MESSAGES = [ # 多条验证语,随机发送
"你好,我是...",
"朋友推荐,加个好友",
"有事请教,麻烦通过",
"您好,看到您分享的内容,想交流一下"
]
MIN_INTERVAL = 300 # 最小间隔(秒) 5分钟
MAX_INTERVAL = 900 # 最大间隔(秒) 15分钟
# 微信窗口标题(需确保微信电脑版已打开且登录)
WECHAT_WINDOW_TITLE = "微信"
# 添加好友界面元素坐标(需根据屏幕分辨率和微信界面调整,这里仅为示例)
# 推荐使用图像识别替代固定坐标,此处为简化使用坐标
SEARCH_BOX_COORDS = (200, 50) # 搜索框位置(示例)
ADD_BUTTON_COORDS = (300, 100) # 添加按钮位置(示例)
VERIFY_INPUT_COORDS = (400, 150) # 验证语输入框位置(示例)
SEND_BUTTON_COORDS = (500, 200) # 发送按钮位置(示例)
# ================== 辅助函数 ==================
def focus_wechat_window():
"""聚焦微信窗口"""
try:
win = gw.getWindowsWithTitle(WECHAT_WINDOW_TITLE)[0]
if win.isMinimized:
win.restore()
win.activate()
time.sleep(1)
logging.info("微信窗口已激活")
except IndexError:
logging.error("未找到微信窗口,请先打开微信并登录")
exit(1)
def click(x, y):
"""点击指定坐标"""
pyautogui.click(x, y)
time.sleep(0.5)
def input_text(text):
"""输入文本"""
pyautogui.write(text)
time.sleep(0.5)
def add_friend(phone, verify_msg):
"""添加单个好友的流程"""
logging.info(f"开始处理手机号: {phone}")
# 点击搜索框
click(*SEARCH_BOX_COORDS)
pyautogui.hotkey('ctrl', 'a') # 全选
pyautogui.press('delete') # 清空
input_text(phone)
pyautogui.press('enter') # 回车搜索
time.sleep(2)
# 点击“添加到通讯录”按钮(可能需根据实际情况调整)
click(*ADD_BUTTON_COORDS)
time.sleep(1)
# 输入验证语
click(*VERIFY_INPUT_COORDS)
input_text(verify_msg)
# 点击发送
click(*SEND_BUTTON_COORDS)
logging.info(f"好友请求已发送至 {phone},验证语: {verify_msg}")
# 返回主界面(按ESC)
pyautogui.press('esc')
time.sleep(1)
# ================== 主程序 ==================
def main():
# 读取Excel中的手机号
wb = openpyxl.load_workbook(EXCEL_PATH)
sheet = wb[SHEET_NAME]
phones = []
for cell in sheet[COLUMN]:
if cell.value and isinstance(cell.value, (str, int)):
phone = str(cell.value).strip()
if phone.isdigit() and len(phone) == 11: # 简单验证手机号格式
phones.append(phone)
wb.close()
logging.info(f"共读取到 {len(phones)} 个手机号")
if not phones:
logging.warning("Excel中没有有效手机号,程序退出")
return
# 聚焦微信窗口
focus_wechat_window()
# 循环处理每个手机号
for i, phone in enumerate(phones, 1):
logging.info(f"进度: {i}/{len(phones)}")
verify_msg = random.choice(VERIFY_MESSAGES) # 随机选择验证语
try:
add_friend(phone, verify_msg)
except Exception as e:
logging.error(f"添加 {phone} 时出错: {e}")
continue
# 随机间隔,模拟人工操作
if i < len(phones):
interval = random.randint(MIN_INTERVAL, MAX_INTERVAL)
logging.info(f"等待 {interval} 秒后进行下一个...")
time.sleep(interval)
logging.info("所有任务完成!")
if __name__ == "__main__":
main()
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。