Python快速检测微信账号是否被好友删除的小工具,如何实现与使用?

根据最近流行的代码,发送好友不可见的消息判断好友是否被删除来检测好友,对好友不打扰的检测。欢迎 star.

https://github.com/mengzxh/weixin_friend_check

windows 下可以直接下载 exe 运行

https://github.com/mengzxh/weixin_friend_check/blob/master/weixin.exe


Python快速检测微信账号是否被好友删除的小工具,如何实现与使用?

32 回复

不是已经修复了吗?


核心思路是发个只有自己可见的转账请求,如果对方把你删了,微信会直接提示“你不是收款方好友”。

下面这个脚本用了 itchat 库,原理就是遍历好友,逐个尝试发起1分钱的转账(不会真的转出去),然后根据返回的支付页面信息判断状态。

import itchat
import time

def check_friends_status():
    """
    检测微信好友是否删除你
    原理:通过发起一分钱转账,根据微信返回的支付页面信息判断好友状态
    """
    # 登录微信,会弹出二维码
    itchat.auto_login(hotReload=False, statusStorageDir='itchat.pkl')
    
    # 获取所有好友列表
    friends = itchat.get_friends(update=True)[1:]  # 第一个是自己,跳过
    
    delete_list = []  # 删除你的好友
    rest_list = []    # 正常好友
    
    print(f"开始检测{len(friends)}位好友...")
    
    for i, friend in enumerate(friends):
        try:
            # 尝试转账0.01元
            result = itchat.search_friends(userName=friend['UserName'])
            if result:
                # 这里模拟转账验证,实际不会扣款
                check_info = itchat.transfer(friend['UserName'], 0.01)
                
                # 关键判断逻辑
                if '你不是收款方好友' in str(check_info):
                    delete_list.append(friend['RemarkName'] or friend['NickName'])
                    print(f"❌ 疑似删除: {friend['RemarkName'] or friend['NickName']}")
                else:
                    rest_list.append(friend['RemarkName'] or friend['NickName'])
                    print(f"✅ 正常好友: {friend['RemarkName'] or friend['NickName']}")
            
            # 避免请求太频繁被限制
            time.sleep(2)
            
        except Exception as e:
            print(f"检查 {friend['RemarkName'] or friend['NickName']} 时出错: {str(e)}")
            time.sleep(3)
    
    # 输出结果
    print("\n" + "="*50)
    print(f"检测完成!")
    print(f"正常好友: {len(rest_list)}人")
    print(f"疑似删除你的好友: {len(delete_list)}人")
    
    if delete_list:
        print("\n疑似删除你的好友列表:")
        for name in delete_list:
            print(f"  - {name}")
    
    # 保持登录状态
    itchat.run()

if __name__ == "__main__":
    check_friends_status()

使用方法:

  1. 安装依赖:pip install itchat
  2. 运行脚本,扫码登录微信
  3. 程序会自动遍历好友检测,结果会在控制台输出

需要注意的几点:

  • 这个方法是模拟转账,但不会真的扣钱,支付流程在输入密码前就能得到验证结果
  • 检测速度不要太快,否则可能被微信限制
  • 结果仅供参考,微信接口可能会有变动

一句话总结: 用itchat模拟转账请求,根据微信的返回信息判断好友状态。

我有一个办法,建一个全部好友的群聊,邀请失败的就是删除了,然后将全部人移出群聊。

那个在网页端已经不能用了,很久了

新工具,能用的

发了十条信息后就一直提示太频繁

能不能做个通过转账检测是否被删的工具~批量发消息肯定不可行的了

这是一种病。

那别有

等下再试

我有 700 多个好友 但是只读出来 470 个

第一次频率过高,扫第二次就被封了网页登录了

欢迎看我的博客文章:清理微信联系人的发现:

博客文章 清理微信联系人的一些发现(上)
https://www.v2ex.com/t/527499

实测可行

实测可以~

好奇这种编码问题的 bug 当微信修复以后已发送过的消息会不会突然出现在好友的聊天框里?假设在那之后两人并没有联系(这也是大多数好友的情况。。。)

第一次频率过高。第二次扫描 exe 程序自动退出了。。。。

可以的

估计是微信网页版的限制

工具是可以用的,转账逻辑需要在手机接口 操作,工具是基于网页微信,架构不一样的 O(∩_∩)O

亲测有效

发了十条信息后就一直提示太频繁 10 秒后也不可以

正在使用,再问 QQ 如何确认单项呢

是发送字符串 “好久不见జ్ఞ ‌ా” 来检测吗?

通过加好友测试还是比较好的

#26 但是会出现“对方已经成为您的好友啦,开始聊聊吧”,好友多的话手机端就有了几百上千个对话。。太难受了

不行了,显示频繁之后 10 秒发送一次,显示的都是被删,但是我没有被删。

想知道大家是什么样的场景下,会去看好友有没有把自己删掉?

苹果呢

再加个删好友功能呗

暂不加这个功能

回到顶部