最近微信“拍一拍”火遍了各大微信群,并迅速占据了热搜话题榜

于是我突发奇想,决定用pyhton自动实现微信“拍一拍”,没想到还真给搞成功了,整个过程才用了30行代码,下面给大家介绍一下具体实现步骤:

本文亮点

用appium模拟操控手机并截图,通过图像识别定位好友头像坐标,最后用appium模拟双击头像坐标,以此实现“拍一拍”功能。

具体步骤:

一、用appium操控手机

关于appium的安装及使用方法,之前已经写过很多了,这里就不再赘述了,直接进入操作步骤

1.用python打开微信,代码如下

desired_caps = {"platformName": "Android","deviceName": "VOG-AL00","appPackage": "com.tencent.mm","appActivity": ".ui.LauncherUI","noReset": "true","fullReset": "false"}
server = 'http://localhost:4723/wd/hub'
driver = webdriver.Remote(server, desired_caps)

难点在于desired_cap参数的配置,这里再给大家介绍一下:

  • platformName:表示设备操作系统
    deviceName:表示设备名称
    apppackage:表示app程序包名
    appActivity:表示app入口Activity名。

将手机连接电脑,打开开发者模式,运行此程序,就会发现手机自动打开了微信。

二、模拟双击头像

1.原理介绍

我们都知道,微信“拍一拍”是通过双击好友头像实现的,如下图所示:

想要双击头像,就要先获得头像在屏幕中的坐标

这里给大家介绍1个函数:

基于Python-opencv2的目标定位模块:Aircv使用其find_template函数,可以查找目标图像在原始图像中的坐标范围,用法如下:

def matchImg(imgsrc, imgobj, confidencevalue=0.7): imsrc = ac.imread(imgsrc)imgobj = ac.imread(imgobj)match_result = ac.find_template(imsrc, imgobj,confidencevalue) return match_result

其中imgsrc=原始图片路径,imgobj=待查找的目标图片路径。
如果未找到,则match_result=None;
若找到,则返回如下数据:

{'result':(570.0, 2771.0), 'rectangle': ((30, 1601), (30, 3941), (1110, 1601), (1110,3941)), 'confidence': 0.999999463558197}

其中:

  • result为匹配图片在原始图片上的中心坐标点,也就是我们要找的点击点;
  • rectangle为匹配图片在原始图像上四边形的坐标;
  • confidence为匹配相似率。

2.那么该如何在程序中自动获取获取好友头像坐标呢?

在客户端appium中,可以确定头像在屏幕中的像素为140×140我们可以先把好友头像保存,再用ps把头像改为此像素。

然后在程序中创建1个while循环,在第一步完成的基础上,手动进入好友聊天框(其实也可以通过识别好友头像自动进入)

通过appium对手机屏幕截图并命名为src.png,将其和头像路径(obj.png)导入1中的检测函数:

driver.save_screenshot('src.png')
imgsrc='src.png'
imgobj='obj.png'
match_result=matchImg(imgsrc, imgobj)

若返回None,则说明聊天窗口没检测到好友头像,继续循环;

若检测到头像坐标,则解析返回的坐标数据,用for循环模拟双击坐标位置:

if match_result is not None:result = [match_result['rectangle'][0], match_result['rectangle'][3]]for i in range(2):driver.tap(result,100)print('拍成功')
else:print('没找到头像')

这样就大功告成了如果大家对Python感兴趣的话,可以加一下我的薇信哦:abb436574,免费领取一套学习资料和视频课程哟~

是不是很简单?

小结:本文介绍了用python模拟微信“拍一拍”的主要思路,感兴趣的可以接着做下去,实现一些有趣的功能,例如,监控微信群聊,谁发消息就“拍”谁一下,或者把群聊用户挨个拍一遍,都挺有意思的。

微信“拍一拍”,竟然可以使用Python实现,你get到了吗?相关推荐

  1. 30行python代码实现微信“拍一拍”

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 一腔热血勤珍重,洒去犹能化碧涛. ...

  2. python是最好的语言表情包_Python语言学习之如何通过Python用表情包自动回复微信拍一拍...

    本篇文章主要介绍了Python语言学习之如何通过Python用表情包自动回复微信拍一拍,通过具体的内容展现,希望对Python语言的学习有所帮助. 前段时间微信上线了拍一拍功能,刚推出就被有才的网友玩 ...

  3. python聊天表情包_如何通过Python用表情包自动回复微信拍一拍?

    前不久微信上线了拍一拍功能,刚推出就被有才的网友玩坏了. 还有更多没有节操的拍法这里就不展示了. 但拍一拍属于弱提示,只有在聊天界面才能感受到.如果不在微信界面,被人拍了没办法及时回应,这里给大家介绍 ...

  4. 微信上线“拍一拍”功能,结果被网友激情吐槽...

    微信更新了7.0.13版本,iOS用户也可以修改微信号,版本更新还加入了跟随系统设置切换深色模式.以及优化语音转文字消息的发送体验. 接着,微信在iOS和Android版本都上线了"拍一拍& ...

  5. 阿里 P8 员工招聘私人助理被辞退;微信上线「拍一拍」功能;FreeBSD 11.4 释出 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极 ...

  6. 微信推出史上最简单「拍一拍」新功能,仅需一行代码,好友们都玩疯了!

    点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 You will meet two kinds of people in l ...

  7. android微信炸弹代码,微信炸一炸怎么弄安卓?拍一拍炸一炸会动炸弹设置教程...

    微信拍一拍炸一炸会动炸弹在哪里设置?最近这个微信拍一拍炸一炸非常的火爆,很多小伙伴不知道安卓怎么设置,其实操作的步骤非常的简单,各位一起来看看吧. 微信拍一拍炸一炸会动炸弹设置教程 1.将微信升级至最 ...

  8. android版本新 老程序不能用_微信拍一拍功能不知道怎么用?教你拍好友和拍自己...

    微信是我们几乎每个人每天都必须要使用的通讯.社交,以及支付等环节的APP.昨天微信最新版本悄悄上线了一个隐藏"彩蛋"功能--微信拍一拍,支持用户在群聊和个人对话中提醒对方. 目前最 ...

  9. 微信拍一拍小尾巴生成源码

    文章目录[隐藏] 源码介绍 源码截图 源码介绍 输入想要的昵称和后缀,点击生成然后复制,返回微信粘贴替换微信群昵称. 源码截图 附 件 下 载 文件名称:微信拍一拍小尾巴生成源码 更新日期:2020- ...

最新文章

  1. Android 网卡地址Mac Wifi文件
  2. avs 中国音视频标准DRA 中音频标准及应用
  3. html5填空题阅卷,“过五关”般严格,高考阅卷老师来自哪里?研究生参与阅卷?
  4. c#实现播放器的集中方式
  5. 百度安全专家盘点:非官方购火车票渠道 几乎都不靠谱
  6. mysql字符集设置lampp_xampp下mariaDB数据库设置默认字符集utf8(Windows)
  7. oracle加索引 oracle,Oracle索引创建及管理
  8. qt中的句柄类,实体类
  9. python给定dna等分成两个序列_Biopython序列
  10. 基于FPGA的cameralink编解码测试系统设计
  11. 计算机三级数据库应用题设计题,计算机考试三级数据库练习题
  12. UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xae in position解决办法
  13. MySQL复制表的三种方式
  14. 图片大小怎么调整?图片怎么改尺寸?
  15. ChIPseeker包对ChIP-seq peaks可视化
  16. Convertio —— 支持 300 种文件格式的在线转换神器
  17. 服务器白屏是系统在更新吗,远程服务器白屏怎么处理
  18. PhotoSwipe.js 相册展示插件学习
  19. 【嵌入式开发教程6】手把手教你做平板电脑-触摸屏驱动实验教程
  20. 与Xcode比照Adobe AIR开发iOS的优势和局限

热门文章

  1. B端可视化:图表设计
  2. 2021年95后“他经济”研究报告
  3. 【2017年第1期】大数据能力开放平台创新和发展
  4. 作者:王雨华(1970-),男,中国科学院昆明植物研究所研究员、副所长
  5. 【计算机网络】信息与信号
  6. 动态规划求解限时采药问题(洛谷P1048题题解,Java语言描述)
  7. 【Java】GUI界面切换的解决方案
  8. 利用好手头的资源解决海量语料资源收集以及利用哈工大的LTP云平台解决依存句法和语义依存分析
  9. 使用百度UMeditor富文本编辑器,修改自定义图片上传,修改源码
  10. 【maven】 在 MyEcplise上使用maven搭建Web项目