Docker容器

基于Python+adb实现微信是否好友检测

2019-08-18  本文已影响4人  yummy觉一

本文介绍的基于Python+adb实现的微信好友检测,是通过adb操控手机,模拟人的点击、截屏操作,对应用无侵入,无需扫描登录即可实现好友检测。

网上看到一些文章类似功能的实现,总结起来千篇一律的引入一个叫itchat的库来实现。我不喜欢这种方式,感觉这种方式对应用有侵入,有潜在安全风险和被封号的风险,同时需要扫描登录,操作繁琐。

仅学习实践,已开源至GitHub
https://github.com/hilbp/app-bot

如何用

运行python setup.py或者python wechat-bot.py

特点
  1. 手机无需root,只需开启调试模式
  2. 利用图像处理技术
  3. 操作简单
实现原理
  1. 电脑通过adb操控手机
  2. 模拟点击打开联系人朋友圈
  3. 多次滑动朋友圈然后截屏
  4. 将截屏传至电脑,Python调用ocr(图片中文字提取)接口提取文字
  5. 通过提取到的文字判断是否是好友

为什么要多次滑动朋友圈呢?
如果滑动一次的话并不能确定好友状态,多滑动几次多拉取几次动态,底部会显示“朋友仅展示...”“非好友...”,这些文字会被ocr技术提取到,这也是判断是否是好友的核心依据

完整功能代码在GitHub,这里show一段判断代码

# 判断是否是好友,调用百度的orc接口,返回自动含义参考百度ai文档
    def test_is_friend(self, res):
        if res['words_result_num'] == 0: #
            self.temp['status'] = '该好友屏蔽了你'
            return False
        last_word = res['words_result'][-1]['words']
        self.temp['status'] = last_word
        index = last_word.find('朋友仅展示')
        if index >= 0:
            return True
        index = last_word.find('非对方的朋友')
        if index >= 0:
            return False
        if res['words_result_num'] < 3:
            self.temp['status'] = '该好友屏蔽了你'
            return False
        return True
    pass
写在最后
热爱技术 期与同道交流
我的微信公众号
上一篇 下一篇

猜你喜欢

热点阅读