pyautogui 语法记录+休闲辅助工具实现-2021.12.15

前言

        近来,工作之余想整点小工具来提高划水效率,没错就是辅助划水的工具。工作累了休息一下,拿着手机刷视频呀,看一会小说呀,难免会被领导或者其他小伙伴发现,这样莫名的“摸鱼”称号不就非你莫属了么?工作累了休息一下抽根烟,刷个手机看看视频,玩会游戏放松一下这是人之常情,但是猪还是怕壮的,就算划水也得暗自理偷偷进行。

目的:

1、鼠标识别电脑桌面的像素

2、用电脑刷抖音,按回车键刷下一条抖音。同时记录观看的抖音次数和观看的时长。

开发工具:pychram ,调用类:pyautogui 

辅助工具:夜神模拟器

pyautogui官方解读文档:https://pyautogui.readthedocs.io/en/latest/

一、pyautogui基础语法运用

1.鼠标命令

import pyautogui

pyautogui.click                                           #固定指定位置点击鼠标一次    button 单击属性
pyautogui.click(100,150,button='left')                 #点击鼠标左键一次
pyautogui.click(100,150,button='middle')               #点击鼠标中间键一次
pyautogui.click(100,150,button='right')                #点击鼠标右键一次
pyautogui. mouseDown()                                    #鼠标左键按下
pyautogui. mouseUp()                                      #鼠标右键弹起
pyautogui.dragTo()                                        #鼠标按住拖动绝对位置
pyautogui.dragRel()                                       #鼠标按住拖动相对位置

pyautogui.doubleClick()  #鼠标双击左键
pyautogui.rightClick()   #鼠标双击右键
pyautogui.middleClick()  #鼠标双加中间键
pyautogui.scroll()  #中间滚轮,上下滚动,
#正数是向上滚动,负数是向下滚动
 
pyautogui.moveTo      #将鼠标箭头移到,指定,绝对位置
pyautogui.moveRel     #将鼠标箭头移到,相对位置

花样移动:2秒移动时长,移动样式,通用
pyautogui.moveTo(100, 100, 2, pyautogui.easeInQuad)     # 开始慢,结束快
pyautogui.moveTo(100, 100, 2, pyautogui.easeOutQuad)    # 开始快,结束慢
pyautogui.moveTo(100, 100, 2, pyautogui.easeInOutQuad)  # 开始和结束快,中间慢
pyautogui.moveTo(100, 100, 2, pyautogui.easeInBounce)   # 最后反弹
pyautogui.moveTo(100, 100, 2, pyautogui.easeInElastic)  # 末端橡皮筋

pyautogui.position    返回值确定鼠标当前的位置

2.键盘命令

import pyautogui

pyautogui.hotkey('ctrl', 'c')  # 热键组合输入

# 'a', 'b', 'c', 'A', 'B', 'C', '1', '2', '3',  '!', '@', '#',等等单个字符的键
pyautogui.typewrite('yin')  # 其他键输入,依次类推,直接输入对应单词

pyautogui.keyDown()  # 按下一个键不放
pyautogui.keyUp()  # 弹起按下不放的键

3、图像识别截图

import pyautogui
#判定目标截图在系统上的位置
location=pyautogui.locateOnScreen(image='target.png')
#输出坐标
print(location)
#利用center()函数获取目标图像在系统中的中心坐标位置
x,y=pyautogui.center(location)
print('center()',x,y)

#对识别出的目标图像进行点击
#参数x,y代表坐标位置,clicks代表点击次数,button可以设置为左键或者右键
pyautogui.click(x=x,y=y,clicks=1,button='left')

>>> import pyautogui
>>> im1 = pyautogui.screenshot()
>>> im2 = pyautogui.screenshot('my_screenshot.png')

二、项目的实现

1、鼠标识别电脑桌面的像素

import time
import datetime

import pyautogui as pg
#坐标识别器
print('print ctrl+c to quiet')
try:
    while True:
        x,y = pg.position()
        positionStr = 'x:'+str(x).rjust(4) + 'y:'+str(y).rjust(4)
        print(positionStr,end='')
        print('\b' * len(positionStr),end='',flush=True)
except KeyboardInterrupt:
    print('\n')

保存代码,通过cmd运行即:

鼠标移动到哪里打印出哪里的界面坐标

2、用电脑刷抖音,按回车键刷下一条抖音,同时记录观看的抖音次数和观看的时长。

# -*- coding: <encoding name> -*- : # -*- coding: utf-8 -*-
import time
import datetime
from selenium import webdriver
import random
import win32con
import win32api
import pyautogui as pg


def RunTest():
    #移动到右下角进行抖音操作滑动(夜神模拟器小界面移动到界面右下角)
    pg.moveTo(1740, 740)
    time.sleep(2)
    pg.dragTo(1740, 540)
    time.sleep(0.5)
    #返回cmd输入继续操作空格(cmd窗口设置于界面左上方固定好)
    pg.moveTo(50, 100)
    time.sleep(1)
    #点击输入框
    pg.click()

start = datetime.datetime.now()
for i in range(100):
    SM = i + 1
    print('今日刷新次数:'+str(SM))
    number = input('请按空格键:')
    if number != str(1):
        print("-----------------開始運行------------------")
        RunTest()
    else:
        end = datetime.datetime.now()
        print('今日总观影次数为:%d 運行時間: %s' % (SM, end-start))
        break

 

效果实现:

如上即可以通过键盘控制鼠标进行滑动,就按一下回车就切换到下一个视频,输入1即可打印出刷新的总条数和放松的时间,当然也可以修改一下代码,30秒内自动滑动视频。

3、工具升级,自动打开夜神模拟器,打开抖音,并且休息完后自动关闭软件,神不知鬼不觉的进行这些操作;

# -*- coding: <encoding name> -*- : # -*- coding: utf-8 -*-
import time
import datetime
import os
from selenium import webdriver
import random
import win32con
import win32api
import pyautogui as pg


def RunTest():
    #移动到右下角进行抖音操作滑动
    pg.moveTo(1740, 740)
    time.sleep(2)
    pg.dragTo(1740, 540)
    time.sleep(0.5)
    #返回cmd输入继续操作空格
    pg.moveTo(50, 100)
    time.sleep(1)
    #点击输入框
    pg.click()
#启动夜神浏览器
win32api.ShellExecute(0, 'open', r'D:\Program Files\Nox\bin\nox.exe', '','',1)
print("等待啓動:")
time.sleep(15)
start = datetime.datetime.now()
for i in range(100):
    SM = i + 1
    print('今日刷新次数:'+str(SM))
    number = input('请按空格键:')
    if number != str(1):
        print("-----------------開始運行------------------")
        RunTest()
    else:
        end = datetime.datetime.now()
        #打印播放的抖音数和休息时间
        print('今日总观影次数为:%d 運行時間: %s' % (SM, end-start))
        time.sleep(5)
        #终止夜神浏览器软件
        os.system("taskkill /F /IM nox.exe")
        break

这样的话代码逻辑就已经实现了

        这个工具目前对于我是够用了,那么还有兴趣的小伙伴可以再完善一下工具,比如图像识别定位自动在模拟器上打开app,或者关闭app等,但这里运用的是模拟器非Windows系统桌面所以pyautogui的图像识别无法运用,但可以结合appium进行脚本优化。^——^

        有好的建议欢迎各位大佬指点。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值