专栏首页运维之美微信群拉人很累?学会这 6 种自动化方案后,轻松乐无忧!

微信群拉人很累?学会这 6 种自动化方案后,轻松乐无忧!

微信是世界上体量最大的超级 APP 之一,拥有数以十亿计的用户,每天都有许许多多的人在微信上进行聊天、沟通、推广、卖货……覆盖了社交辐射的方方面面。

自动化这事呢,也从来都不稀奇,从 PC 端、浏览器到手机端,从按键精灵到 xposed,自动化技术经过一次又一次的变革。

为什么我们需要微信自动化呢?试想一下,如果你是一位专职运营人员,每天面对数百上千个微信群、好友、订阅号和朋友圈进行操作、拉人、推广,是不是要疯?而拥有了自动化技术这一切就不一样了,自动收发消息、自动将群成员添加为好友、自动发朋友圈、自动采集公众号文章...

解放人力、提高效率,这就是自动化要做的事。

那下面我们就总结一下微信(理论上不止微信适用哦)的一些自动化方案:

1、通过模拟 http 请求

原理是实现网页版微信的请求,模拟网页微信的请求。也就是说只要网页版微信有的功能,你都可以有。

为什么不是模拟桌面或移动端微信呢?因为正常实现下,桌面客户端应该是跟微信加密通信的。

比如 gayhub 上我们可以找到很多基于此方案的开源项目:

https://github.com/littlecodersh/ItChat

https://github.com/youfou/wxpy

https://github.com/liuwons/wxBot

https://github.com/zixia/wechaty

https://github.com/sjdy521/Mojo-Weixin

https://github.com/hanson/vbot

https://github.com/yaphone/itchat4j

https://github.com/kanjielu/jeeves

https://github.com/Urinx/WeixinBot

有 python 的,也有 java、js 的,还有 php 的,大家需要的话可以去 Github 上多搜一搜。

可惜的是,现在好多账号不能使用网页版了,据说是微信在慢慢的关闭网页版的接口……还是要寻求其他方案。

2、通过网页自动化工具

原理通过 web 自动化工具去操作网页版微信实现。

一般可以通过 Chrome 或者 Webkit 周边的自动化技术实现,比如使用 PhantomJS、electron、Puppeteer 等基于 webkit 的无头(headless)浏览器的 JS 库,也可以直接用Selenium,还有基于 Mozilla 的 XPCOM 的。基于浏览器插件、油猴脚本应该也能实现一些简单操作。

简单介绍下名气最大的 Selenium:

Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括 IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera 等。

和上面方案有同样的缺点,受限于账号是否能登录网页版微信。

3、通过 App 自动化工具

类似 web 自动化工具,app 自动化工具也有很多,名气最大的当属 Appium 了吧。它继承了 webdriver(也就是 selenium 2)。

这里有一段介绍:

Appium 是开源的移动端自动化测试框架:

  • 支持 Native App、Hybird App、Web App;
  • 支持 Android、iOS、Firefox OS;
  • 跨平台,可以在 Mac,Windows 以及 Linux 系统上;
  • 用 Appium 自动化测试不需要重新编译 App;
  • 支持 Java、python、ruby、C#、Objective C、PHP 等主流语言;

除了 appium 还有很多,比如 Airtest,网易还是有不少良心软件的,放个图感受一下:

其余还有 uiautomator2、Calabash、Robotium、UIAutomator、XCTest、Frank 等等,我们选择的时候挑选符合自己需求的就好。

4、通过 Windows 自动化

比如 pywinauto,已经封装了 python 包就问爽不爽。windows的自动化方案也有很多,这里就不展开了,因为用的比较少,也就做自动化交易的时候用过pywinauto,其他方案大家可自行去了解。

PC 端大部分常见的还是 hook 的形式,hook 下面说。

5、通过 Android 的辅助服务

辅助服务(AccessibilityService)本来是为了帮助残障人使用安卓设备,熟悉 Android 开发同学应该知道。

它以服务的形式在后台运行,当页面切换、焦点改变、收到通知、弹出 Toast 等,系统会回调 onAccessibilityEvent 方法,还可以模拟输入、点击等,这样你就可以干自己想干的事情了。

无需 Root,但不支持 WebView加载的页面,且每次运行你的 apk 都需要手动打开辅助功能。

代码很简单,可以参考 Google 或官方文档。

6、通过 Hook

Hook 又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输,将自己的代码与系统方法进行融合。这样当这些方法被调用时,也就可以执行我们自己的代码,这也是面向切面编程的思想(AOP)。

各操作系统各平台有不同的实现,移动端名气最大的当属 Xposed 了,另外还有 Legend、VirtualXposed 等一些免 Root Hook 框架。

Xposed 框架(Xposed Framework)是一套开源的、在 Android 高权限模式下运行的框架服务,可以在不修改 APK 文件的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作。Xposed 并不支持 Android 9 以上版本,但可经由 EdXposed 代替。

PC 端貌似更难一些,需要深厚的逆向功底,熟练使用 CE、OD 等工具。

通过 Hook,我们真的可以为所欲为:)

总结

如上面微信自动化方案所说,任何一个 app 要实现外挂方式的自动化操作,都要基于三点下手:

  1. 通信协议 一般是 Http 或 Https,抓包实现,没有加密的更好
  2. 客户端 UI 自动化 根据不同平台、系统去选择。比如浏览器下的 Selenium,Andorid/iOS 下的 Appium……
  3. HOOK 也需要根据不同平台、系统去选择。

如果需求比较简单,Android 的辅助服务(AccessibilityService)能满足的,就选择此方案。原因无他,最稳定。

本文转载自:「优雅的程序员呀」,原文:https://url.cn/5AWHoO7,版权归原作者所有。

本文分享自微信公众号 - 运维之美(Hi-Linux)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 「运维之美」技术周刊 ( 第 2 期 )

    欢迎投稿或推荐你自己的项目,投稿邮箱: editor@hi-linux.com 。如果你想我们一起交流,也可以戳「这里」加入技术交流群。

    iMike
  • 「运维之美」技术周刊 ( 第 4 期 )

    近日,谷歌副总裁巴提亚(Karan Bhatia)出席美国参议院司法委员会举行的听证会时确认谷歌已经终止了在中国推出审查搜索引擎的 “蜻蜓计划”,该计划原打算推...

    iMike
  • 可能是东半球最好的 Curl 学习指南,强烈建议收藏!

    curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。

    iMike
  • AndroidTShare Weekly No.8

    非著名程序员技术周报第八期,我们今天来回顾一下本周技术文章的分享和哪些热点开源项目,以及相关技术新闻。看过上期的同学都知道,周报改版了,不仅仅只是回顾重复的技术...

    非著名程序员
  • AndroidTShare Weekly No.10

    本周热点开源项目 SpinMenu 转动轮盘样式的Fragment切换效果,非常漂亮。 效果图如下: ? 作者:Hitomi 项目开源地址:https://gi...

    非著名程序员
  • AndroidTShare Weekly No.9

    本周热点开源项目 夜间模式渐变实现 这个实现了夜间模式渐变效果了,过渡的非常自然。 效果图如下: ? 作者:chkfung 项目开源地址:https://gi...

    非著名程序员
  • AndroidTShare Weekly No.11

    本期热点开源项目 FreshDownloadView 一个下载动画,下载完成和失败的时候会有酷酷的动画,非常炫酷和使用。 效果图如下: ? 作者:dudu90 ...

    非著名程序员
  • 我整理的Java开源项目

    Java团长
  • 2018年的四大热门VueJs项目

    从我个人主观的讲课与开发体验来讲,我更喜欢VueJs,因为相对于ReactJs来比较,vue的许多开发细节都更简练,更贴近业务逻辑,下面是github上的十个比...

    web前端教室
  • 一些java开源项目

    似水的流年

扫码关注云+社区

领取腾讯云代金券