前言

之前写了篇文章:【全是干货】谈谈如何学习一项新技能,没有理论,全是实战,里面第五点提到用脚本玩探探,昨天花了一个小时实现了该功能。

Github:探探机器人,自动根据不同妹纸/汉子颜值、年龄等类型,喜欢、忽略,欢迎各位star

先看一下实现的结果吧

今天要讲的主题是:使用 脚本 + WebDriverAgent 实现你自己想要自动操控的任意手机App。

探探“机器人”实现原理

  1. 设备开启WebDriverAgent
  2. 使用usbmuxd(iTunes与iPhone通信采用usbmuxusbmuxd提供了USB-TCP的转换服务),里面的iproxy将设备端口转为本地端口

    > brew install usbmuxd
    > iproxy 8100 8100  # 将设备8100端口映射到电脑本地8100端口
  3. 使用脚本操控手机App,Python为例(其它语言的实现,可自行去包管理网站找,比如:Node)

    import wda  # https://pypi.org/project/facebook-wda/
    wdaClient = wda.Client()
    tantan_session = wdaClient.session('com.yaymedialabs.putong')  # 括号里为探探的Bundle ID,后面会提到怎样获取
    wdaClient.screenshot('iphone_screen.png')  # 截取手机屏幕并保存为iphone_screen.png
    iphone_screen = Image.open('./iphone_screen.png')
    img_face = iphone_screen.crop((34, 215, 1208, 1560))  # 根据坐标点截取出Plus 获取探探里面的照片
  4. 上面已经获取到了探探里面的照片,此时可以调用三方api分析照片的数据,例:腾讯的AI Api
  5. 根据第4步获得的结果判断 喜欢、忽略,直接使用上面的tantan_session点击对应按钮就好了

    tantan_session.tap(780, 2028)  # plus探探喜欢按钮的坐标

拓展

  1. facebook-wda的功能还有很多,详情见文档
  2. tantan-bot只实现了最简单的功能,其实可以很容易实现功能增加,比如:第一张截图识别不到人脸的,可以让脚本点照片进去滑动,检测到人脸后再判断喜欢、忽略(不错过每一个妹纸?)
  3. Python的图像处理很方便,比如你可以写一个脚本实时监控你微信上女朋友是否给你发新消息了。我的思路:每5秒OCR识别一下聊天窗口,然后取OCR识别出的最后一条数据(非你自己发出的),采用Simhash算法比对与上一次是否差不多,如果相识度不高,证明是新消息,则调用三方聊天机器人API(当然你也可以扒出你自己的聊天数据用分类算法分个类,当新消息来了在你的语言库里去找一条最合适的回给你女朋友,看着不像是个机器人?),于是女朋友就和智能机器人愉快的聊了一晚上,把自己都感动哭了?
  4. 这个拿来玩游戏早有实践,比如:跳一跳
  5. 用wda也可以很方便的实现到时自动抢东西的功能,省得去破协议,几句代码搞定?
  6. 探探这个个人信息也可以用ocr很容易识别出来分析,因为它都在固定区域,这样可以很容易判断对方的年龄、星座等

补充

  1. Bundle ID获取:https://offcornerdev.com/bundleid.html
  2. OCR识别:百度 API、Google tesseract

最后

下次见面,说不定我就已经实现上面说的东西了哦, 来波关注、star吧,哈哈!

文章同步发布:blog

【“探探”为例】手把手教你用最少的代码实现各种“机器人”相关推荐

  1. 手把手教你调试Linux C++ 代码(一步到位包含静态库和动态库调试)

    手把手教你调试Linux C++ 代码 软件调试本身就是一项相对复杂的活动,他不仅要求调试者有着清晰的思路,而且对调试者本身的技能也有很高的要求.Windows下Visual Studio为我们做了很 ...

  2. C# 用真实需求,手把手教你写面向对象的代码

    好久没写过文章了,这里工作很忙. 今天继续给大家讲解下,怎么写面向对象的代码.之前也写过类似的文章,但那都是随便举的例子,不是活生生的现实案例. 今天使用我刚写的项目来举例子,它是真实存在的需求案例, ...

  3. 手把手教你快速搭建一个代码在线编辑预览工具

    简介 大家好,今天我跟大家分享的是一个代码在线编辑预览工具的实现教程,手把手教你完成这样一个项目. 目前这类工具使用很广泛,常见于各种文档网站及代码分享场景,相关工具也比较多,如codepen.jsr ...

  4. Python编程|手把手教植物大战僵尸,代码开源

    前言 如题,手把手教Python实现植物大战僵尸游戏,代码简单易学,无需额外安装Python包,只要有pygame即可,文末获取全部素材及源代码~ 视频演示效果:https://www.bilibil ...

  5. 手把手教你写需求之代码实现pdf转jpg

    前言 初入公司,很多朋友如果碰到一些莫名其妙的需求,没有做过就会很慌张.不要慌张,本文通过一个小案例手把手教你写需求. 场景 一个阳光明媚的下午,需求小姐姐向你款款走来,娇滴滴的寻求你帮忙,她需要你把 ...

  6. python量化策略代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...

    动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...

  7. python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...

    动量策略是右侧交易里最常见的,背后的逻辑是就现在涨的,后市还会涨,动量具有惯性的意思. 首先加载原始数据,我们用天的收盘价即可,按统一转为收益率.因为点位本身不重要,我们最后只关心变化率. 以沪深30 ...

  8. 50行python代码打造一款女友监控器_手把手教你50行Python代码,给心目中的女友微博秒评论...

    突然觉得,现在发微博已经成为当代青年的潮流,或分享自拍美照,或分享美食美景,小编的女朋友也不例外,平时爱分享一些我俩生活的趣事. 但是她最近开始给我抱怨我从来不给她的微博评论,我作为骨灰级" ...

  9. 手把手教你重构乱糟糟的代码

    来 源:www.jianshu.com/p/3f04b6aebad2 作者:小村医 重构不止是代码整理,它提供了一种高效且受控的代码整理技术. (一)重构原则 1.何谓重构 对软件内部结构的一种调整, ...

最新文章

  1. Go 学习笔记(24)— 并发(03)[通道特点、通道声明、通道发送/接收/关闭、单向通道]
  2. python hello world程序编写_编写高质量代码 改善Python程序的91个建议
  3. 基于SmartQQ协议的QQ聊天机器人-4
  4. 荣耀9X将搭载麒麟810处理器:全球四大7nm芯片之一无法低调
  5. 【汇编优化】之CPUID获取x86处理器信息
  6. 众说纷“云”,看生态驱动工业物联网落地
  7. 函数式编程会取代GoF设计模式吗?
  8. 预测接口表:MRP_FORECAST_INTERFACE
  9. 如果你是加勒比海盗首领,会选择哪种算法来使价值最大化?
  10. 浅谈设备驱动的作用与本质,有无操作系统Linux设备驱动的区别
  11. Visual C++——定时器(计时器)SetTimer函数
  12. 商米D1S一体机设置搜狗手写输入法图解
  13. 苏格拉底-爱情、婚姻、外遇、生活
  14. 论灾备之重要性:七场无法预见的数据中心灾难
  15. 用户体验设计师到底有多重要
  16. 【亲测好用】一站式视频录制编辑软件:Filmage Screen mac中文版
  17. 介绍一下 ForkJoinPool
  18. 【Android】解决Android Studio中的虚拟设备无法上网问题
  19. Centos 8查询和设置当前时区
  20. HTTP中的常用方法

热门文章

  1. ptr = (char *)malloc(0)
  2. linux有三个查看文件的命令:more、cat、less
  3. java:多态的实现机制
  4. 【转载】PHP 常用的header头部定义汇总
  5. HGE_improve 0.1发布
  6. 电子电路基础复习 —— 三极管
  7. 11g 64位部分安装过程
  8. python如何安装Django框架
  9. 禁止北京地区IP访问站点
  10. C/C++掌握技能(三)