python微信运动自动点赞

本文介绍了一种通过USB调试连接电脑,利用pyautogui抓取屏幕图像,结合opencv进行模板匹配的方法,实现自动识别和点击安卓手机上的特定区域,如微信运动的心形图,但存在自点赞的bug。
摘要由CSDN通过智能技术生成
思路

通过USB调试在电脑显示并可操作手机屏幕
使用pyautogui获取屏幕图像
使用opencv处理和模板匹配,识别需要点击的区域
使用pyautogui点击,并滚动下一页

方法
安卓手机
  1. 激活开发者模式
  2. 在开发者选项中勾选“允许USB调试”
  3. 用USB线缆连接电脑
电脑
  1. 打开软件scrcpy.exe,正常可看到并操控手机屏幕,软件官网scrcpy
  2. 将窗口调整到固定位置,使用截图工具将待点击的心形图截图保存为heart.jpg
  3. 在同一文件夹创建并运行Python脚本如下
import pyautogui
import time
import numpy as np
import cv2 as cv

# 设定点击的间隔时长
pyautogui.PAUSE = 0.02

def match_click(image, templ):
    assert image is not None, "file could not be read, check with os.path.exists()"
    # 二值化操作,选用了阈值240,如果发现完全不工作,在0-255之间调整一下
    ret,img = cv.threshold(image,240,255,cv.THRESH_BINARY)
    # 模板图片,保存好的
    template = cv.imread(templ,cv.IMREAD_GRAYSCALE)
    assert template is not None, "file could not be read, check with os.path.exists()"
    h, w = template.shape[:2]
    # 匹配模板
    res = cv.matchTemplate(img, template, cv.TM_CCOEFF_NORMED)
    # 只保留高置信度结果
    threshold = 0.8
    loc = np.where( res >= threshold)
    for pt in zip(*loc[::-1]):
        # 点击
        pyautogui.click(pt[0],pt[1], button='left')
    for i in range(12):
        pyautogui.scroll(-100)
        time.sleep(0.2)

i = 0
time.sleep(1)
while(True):
   

    try:
        # 获取截屏图像
        img = pyautogui.screenshot()
        
        # 从PIL转OpenCV
        img = cv.cvtColor(np.asarray(img),cv.COLOR_RGB2GRAY) 
        
        match_click(img, 'heart.jpg')
      
        i +=1
        print('第{}页'.format(i))

    except:
        print("没有发现目标")
        break
存在的Bug
  1. 不能避免给自己点赞,导致进入自己的微信运动主页而中断。
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值