精华内容
下载资源
问答
  • 微信朋友圈自动点赞

    万次阅读 多人点赞 2019-03-10 10:36:13
    我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给被人点赞也没...

    我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给别人点赞也没啥坏处,但你不评不赞,难免会让你和好友之间有些疏远,给别人点赞吧我又嫌麻烦,于是一直想着做个自动点赞的东西,今天基本实现了,虽然诸多不完整和诸多限制,但还是决定分享出来,主要是我觉得还挺好玩的。

    Autojs

    先来介绍下Autojs,看github id貌似是个95后,真是年轻有为了。我这个朋友圈自动点赞就是基于Autojs开发的,Autojs我的理解就是在Android用来操控手机的平台,它提供了很多Android 系统API可以供你用Js调用,就是依赖Autojs这些Api我才能实现朋友圈自动点赞,这里我只用到了很少几个Api,其实还有好多很强大的Api可以参考下文档。因为Autojs只在Android平台可以用,所以意味着我的自动点赞也在Android手机用。

    思路

    在我知道Autojs并大概翻看了它的Api文档之后,就差不多知道这东西能实现了。首先我我们来分析下如果人想给所有的朋友圈点赞会怎么做,为了直观我直接上流程图。
    在这里插入图片描述
      看起来很简单,如果你想给你所有的朋友圈都点上赞,定时比如每隔一小时执行下上面这个流程就可以了。 但是如何用程序自动执行,我在调试时遇到到了很多的问题,比如以下几个问题。
      问题1:在第一步中,虽然可以Autojs可以直接打开某个App,也可以模拟点击,而且朋友圈入口在微信主界面的位置很固定,但是你每次打开微信并不一定停留在主界面啊!!
      问题2:你如何定位点赞/评论按钮?
      问题3:你如何判定一条朋友圈是否已经被点赞过了?
      问题4:你每次滑动要滑多少?
      针对这些问题来看看我的解决方案。

    实现

    启动微信后可能微信停留在上次使用后的页面,没有朋友圈入口,所以我们得先返回朋友圈主界面。这时候我们只需要连续点左上角的返回键,点按多次后一定返回微信主界面。     
      在这里插入图片描述

    进入朋友圈后可以适当将屏幕上滑一部分,移开自己的封面,让第一条朋友圈的点赞/评论按钮一定能露出来,就像这样(为了不泄露我朋友圈的隐私,恰好有条广告做示例)。
      在这里插入图片描述
      接下来就是找点赞/评论按钮的位置了,Autojs提供了截屏并获取图片中某个点ARGB值的Api,利用这两个Api,我们就可以很轻易定位到按钮的位置了。
      在这里插入图片描述
      就拿评论点赞按钮的第一个点做定位,上图中的定位点,其X坐标是991,Y坐标需要扫描,定位依据是该点的ARGB颜色值是-11048043,这个值是我调试好久才抓出来的。 接下来点击这个点的坐标就可以调出点赞和评论了。
      接下来就是如何区分出一条朋友圈是否已经被点过赞了。
    在这里插入图片描述
      我直接说吧,点赞后这个爱心的位置会左移,只要判断X坐标是465那个位置的像素点是否是白色就能区分出是否点过赞。 还有个关于向上滑动多少的问题,我们只需要互动使上一个点过赞的朋友圈恰好不显示就行了。 
      考虑到所有的细节后,代码流程图就这这样了,是不是比人工点赞复杂多了。  
      在这里插入图片描述
      图里有个循环上文没说到,因为有些特殊情况会导致点赞失败,明明还有好多没点赞就退出,所以我加了个重试机制,只有连续三次点赞失败才退出。

    代码

    源代码我放在github.com/xindoo/autojs,会持续更新。这里我也贴一份出来。

    function enterWechatMoment() {
        app.launch("com.tencent.mm");
        //确保返回到微信主界面
        sleep(200);
        click(692,2073);
    
        // 连续按多次返回,确保回到网协主界面 
        for (var i = 0; i < 5; i++) {
            click(50,140);
            sleep(100);
        }
    
        sleep(50);
        // 点微信 发现
        click(692,2073);
        sleep(50);
    
        // 点朋友圈入口
        click(500,300);
        sleep(1000);
    }
    
    function registEvent() {
        //启用按键监听
        events.observeKey();
        //监听音量上键按下
        events.onKeyDown("volume_down", function(event){
            toast("脚本手动退出");
            exit();
        });
    }
    
    function prepare() {
        // 双击顶部更新朋友圈  
        click(500, 150);
        sleep(100);
        click(500, 150); 
    
        // 等2s 微信朋友圈更新完成 
        sleep(3000);
    
        // 向下滑至第一条朋友圈 
        swipe(550, 1200, 550, 200, 200);
    
        if(!requestScreenCapture()){
            tLog("请求截图失败");
            exit();
        }
        var image = captureScreen();
        sleep(2000);
    }
    
    function clickLike() {
        sleep(1000);
        var image = captureScreen();
        var arrs = [-1];
        var x = 991;
        var buttonColor = -11048043;
    
        // 函数返回此次点赞是否成功,如果没找到点赞按钮或者已点赞返回false,做法是否继续的判断
        var isSucceed = true;
    
        // 扫描出点赞评论按钮的位置,两个点的ARGB颜色为-11048043 
        for(var y = 250; y < 1920; y++) {
            var color = images.pixel(image, x, y);
    
            // 白色 背景色,跳过
            if (color == -1) {
                continue;
            }
            if (color == buttonColor) {
                // 按下评论点赞按钮  
                click(x, y)
                sleep(1000);
    
                // 重新截图,找到点赞心形按钮的位置
                var clickimage = captureScreen();
    
                // 如果这个点的颜色是-1,表示这条朋友圈已经点过赞了,返回点赞失败false
                if (images.pixel(clickimage, 465, y) != -1) {
                    // 点赞
                    click(523, y);
                } else {
                    isSucceed = false;
                }
                sleep(2000);
                // 往下滑动到下一条朋友圈的位置  
                swipe(550, y+200, 550, 150, 200);
                return isSucceed;
            }
        }
    
        // 如果执行到这,可能是某条朋友圈评论太多,一屏里没有点赞评论按钮,就滑动大半屏再试一次
        swipe(550, 1600, 550, 150, 200);
        return false;
    }
    
    //程序主入口
    function start(){
        //注册音量键上被按下时退出脚本的执行  
        registEvent();
    
        // 确保进入微信朋友圈
        enterWechatMoment();
        prepare();
        
        var retry = 3;
        var cnt = 0;
        // 连续失败三次就退出  
        while(retry > 0) {
            // 如果是false,表示已经点过赞了 
            if (clickLike() == false) {
                retry--;
            } else {
                retry = 3;
                cnt++;
            }
        }
        
        toast("本次总共点赞" + cnt + "条");
        // 返回微信主界面
        click(50,140);
        exit();
    }
    start();
    

    问题

    虽然大体上实现了朋友圈点赞的自动化,但其实还是存在很多问题,有些是可以很简单解决的,但是我没啥动力解决。也有些是我没想好怎么解决的,也有些是这种点赞方式下无解的。

    1. 上文所说,只限Android,部分同学是iOS就没啥办法了,我并不清楚iOS是否有类似Api。
    2. 因为我手头只有一台1080*2160分辨率的手机,所以实现是以此为标准的,其他分辨率的手机并不一定能用。
    3. 非全自动化,目前需要手动触发,也需要手动赋予截屏权限(额外点几下),应该是可以设置定时执行的,我没再继续尝试。
    4. 点赞过程中不能干扰,也不能暂停(但可中断),建议点赞过程中不要使用手机(点赞操作和用户操作会相互干扰),实在要用就按音量上键中断点赞。
    5. 最重要一条,不是所有的朋友圈都能点赞的,不是所有的人都能忍受你给他每条朋友圈都点赞的。举个例子,有天我看见朋友圈有人发他亲人去世………

    微信朋友圈自动点赞的实现大致都是这样了,有问题可以在下面留言或者在github.com/xindoo/autojs提issue,github上代码还是方便更新的。 下一个类似的脚本我打算做个 支付宝自动偷能量 虽然网上已经有类似的实现。

    展开全文
  • 30行代码实现微信朋友圈自动点赞

    千次阅读 2021-02-11 20:58:35
    不知道大家都回老家了没,不过我是没有回去,晚上吃完年夜饭看到很多人发朋友圈,为了增进和大家的友谊,于是就想着给大家点个赞,无奈内容太多了,就搞个自动化脚本,原理和前两天我写的30行代码实现蚂蚁森林自动偷...

    首先祝大家新年快乐,过年了,允许我水一篇博客。不知道大家都回老家了没,不过我是没有回去,晚上吃完年夜饭看到很多人发朋友圈,为了增进和大家的友谊,于是就想着给大家点个赞,无奈内容太多了,就搞个自动化脚本,原理和前两天我写的30行代码实现蚂蚁森林自动偷能量一样,这里不再赘述,直接上代码。

    
    import uiautomator2 as u2
    import time
    # d = u2.connect()
    d = u2.connect("192.168.0.102")
    
    # d.app_start("com.tencent.mm")
    # time.sleep(0.3)
    # d(text="发现").click()
    # time.sleep(0.3)
    # d(text="朋友圈").click()
    
    def click(): 
        time.sleep(0.2)
        d.xpath("//*[@resource-id='com.tencent.mm:id/kn']").click()
        time.sleep(0.2)
        if d.xpath("//*[@text='赞']").exists:
            time.sleep(0.2)
            d(text="赞").click()
            time.sleep(0.1)
            return True
        time.sleep(0.3)
        return False
    
    def swipeDown():
        a = d.xpath("//*[@resource-id='com.tencent.mm:id/kn']")
        y = a.get().bounds
        dist = y[3]
        if dist < 200:
            dist = 220
        d.swipe(300, dist, 300, 50, 0.2)
        time.sleep(0.1)
        
    cnt = 0
    while True:
        if d.xpath("//*[@text='5小时前']").exists:
            break
        if click() == False:
        	cnt = cnt + 1 
        if cnt > 2:
            break
        swipeDown()
    
    
    展开全文
  • 环境:安卓7以上,auto.js 4.1。...// 点赞当前页面的动态 function dianzan(){ // 这里是需找到可以滚动的控件:ListView,className是不会改变的,这样写出来的程序会比较稳定 var scroll=className(...

    环境: 安卓7以上,auto.js 4.1。

    CODE:

    // 使得程序可以一直运行,向下滚动
    while(true){
        dianzan();
    }
    
    // 点赞当前页面的动态
    function dianzan(){
        // 这里是需找到可以滚动的控件:ListView,className是不会改变的,这样写出来的程序会比较稳定
        var scroll=className("ListView").findOne();
        // 子控件
        var scroll_thing=scroll.children();
        // 遍历子控件
        scroll_thing.forEach((item,position)=>{
            var comment = item.findOne(desc("评论"));
            if(comment){
                comment.click();
                sleep(200)
                // 根据当前的选择器所确定的筛选条件,对屏幕上的控件进行搜索,如果找到符合条件的控件则返回该控件;否则返回null
                click("赞")
                sleep(500);
            }
        });
        // 直接调用向下滚动的方法
        scrollDown();
        sleep(1000);
    }

    成果:

     

    展开全文
  • 先准备好 auto.js 先到官方网站下载auto.js App ... // 等待获取无障碍权限 ... var appName = "微信"; launchApp(appName); sleep(5000); // 点击发现 var faxian = text("发现").findOnce(); ...

    先准备好 auto.js

    先到官方网站下载auto.js App

    下载地址 https://pro.autojs.org/   (官方是收费的,想要免费的可以留言)

    
        // 等待获取无障碍权限
        auto.waitFor();
        // 打开微信
        var appName = "微信";
        launchApp(appName);
        sleep(5000);
        // 点击发现
        var faxian = text("发现").findOnce();
        click(faxian.bounds().centerX(), faxian.bounds().centerY());
        sleep(3000);
        // 点击朋友圈
        var pengyouquan = text("朋友圈").findOnce();
        click(pengyouquan.bounds().centerX(), pengyouquan.bounds().centerY());
        sleep(5000)
        // 循环翻页点赞
        while (true) {
            var zans = desc("评论").find();
            for (var i = 0; i < zans.length; i++) {
                var item = zans[i];
                item.click();
                sleep(3000)
                var widget = text('赞').findOnce();
                toast(!!widget)
                if (!!widget) {
                    click(widget.bounds().centerX(), widget.bounds().centerY());
                }
                sleep(3000)
            }
            swipe(device.width / 2, device.height - 100, device.width / 2, 100, 1000)
            sleep(1000)
        }

    展开全文
  • 微信朋友圈如何自动点赞

    千次阅读 2020-08-11 21:59:20
    我一直都不太喜欢给别人点赞,某一年(貌似是17年)微信出了一次朋友圈年报,那一整年我就点出去了几个赞,要知道当时我微信好友应该有300+。我觉得这是我不喜欢参与社交活动在网络世界的一种体现吧。不给别人点赞也没...
  • Gallop --- 异步绘制排版引擎,支持布局预加载缓存、支持图文混排显示,支持添加链接、支持自定义排版,自动布局。 只需要少量简单代码,就可以构建一个性能相当优秀(滚动时帧数60)的图文混排界面。
  • 1.支持导入微信头像 2.支持自定义微信名称 3.发布内容可编辑 4.添加自定义附加图片 5.任意编辑发布时间 6.可选择点赞数量 7.轻松生成点赞,即生成即查看
  • Airtest Airtest官方文档 本脚本可以通过AirtestIDE和python执行,推荐使用...# 如果返回到发现页,重新进入朋友圈 pyq . click ( ) swipe ( ( 500 , 1700 ) , ( 500 , 900 ) ) # 向上滑动
  • 发福利,减少资源分,Android 仿微信发表与点赞评论朋友圈,里面有5个demo,基础,对大家有帮助的话请给个好评
  • 微信自动点赞 AccessibilityService 开启之后切换到朋友圈页面 自动运行
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型 Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面 Auto.js Pro使用的javascript的语法比较优雅,代码可读性强 Auto.js Pro的命令...
  • 思路:拿到朋友圈的“。。” 然后获取这个坐标,发现“赞”即点赞,若已点赞则跳过 ...若不在朋友圈界面即打开微信打开朋友圈即可 就是这么简单。 具体代码如下: 希望以上能帮助你. 未完待续… 今天就先整理到这里...
  • 功能测试 发朋友圈本人,已点赞好友,发赞朋友圈的好友且已点赞的好友的共同好友,非发赞朋友圈的好友但是已点赞好友的好友(不通知),发赞朋友圈的好友但是非已点赞好友(通知) 1、本人能否进行正常点赞,好友...
  • autojs微信运动自动点赞

    千次阅读 2020-01-02 09:46:39
    第一行的nameList填入你的微信昵称,防止点击进入“赞我的朋友”页面 由于没有判断心形的位置,可能会有点击到虚拟按键的情况 貌似有漏点的情况,调试太耗时,就这样吧 var nameList = ["xxx"];//你的威信昵称 ...
  • 在夜深人静的晚上张三打开手机看着微信推送给他的运动排行榜,小手毫不犹豫的为每一位微信好友点赞,但热爱社交的张三好友实在太多才点了七八个赞就感到枯燥无聊,于是心想如果要是有一个自动点赞的脚本该多好!...
  • 微信朋友圈点赞生成器

    千次阅读 2019-06-01 12:57:00
    微信朋友圈点赞生成器使用步骤: 1、打开微信朋友圈详情界面: 步骤:我→相册→我的朋友圈→点击要集赞的那个照片→点击右下角那个图标,即到达要截屏的界面,截屏保存。如下图所示: 微信朋友...
  • python实现自动点赞

    2020-12-22 13:42:25
    1.思路 通过pyautogui可以实现鼠标点击、滚动鼠标、截屏等操作。由此功能实现打开页面,进行点赞。 aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一个
  • Auto.js的微信朋友圈点赞

    千次阅读 2020-04-18 23:13:39
    Auto.js的微信朋友圈点赞 1.介绍 本文主要是针对Auto.js的新手用户,作为初学者的第一课,微信朋友圈点赞通常是新手入门教学最好的一课。微信界面抓取代码全面,调试稳定,学习如何操作微信界面可以很好的入手其它...
  • 主要介绍了python自动点赞功能的实现思路,点赞功能不处不见,特别是微信朋友圈,一些商家运用点赞数量搞活动。今天小编给大家分享实现思路及代码,感兴趣的朋友一起看看吧
  • auto.js的学习(微信朋友圈点赞实现)

    千次阅读 热门讨论 2019-11-14 15:35:12
    2.进入朋友圈页面的过程 launchApp ( "微信" ) ; //启动微信,参数就是App的全名 text ( "发现" ) . findOne ( ) . parent ( ) . click ( ) ; text ( "朋友圈" ) . findOne ( ) . parent ( ) . click ( ) ; ...
  • Gallop --- 异步绘制排版引擎,支持布局预加载缓存、支持图文混排显示,支持添加链接、支持自定义排版,自动布局。 只需要少量简单代码,就可以构建一个性能相当优秀(滚动时帧数60)的图文混排界面。
  • 当我们把辅助权限玩的比较熟悉 的时候,就可以释放我们的双手做一些有趣的事情了,例如之前网上流传的微信自动抢红包插件,就是使用的这个服务,不过我们今儿讲的是微信自动评论与点赞功能(抢红包的文章网上已经有...
  • 使用vue最新脚手架搭建环境,编写界面,使用axios请求接口,渲染界面
  • 当我们把辅助权限玩的比较熟悉 的时候,就可以释放我们的双手做一些有趣的事情了,例如之前网上流传的微信自动抢红包插件,就是使用的这个服务,不过我们今儿讲的是微信自动评论与点赞功能(抢红包的文章网上已经有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,829
精华内容 1,531
关键字:

微信朋友圈自动点赞