首页 > 解决方案 > Python - 类似人类的鼠标行为

问题描述

我正在尝试使用pyautogui或模拟类似人类的鼠标移动autopy

你们有谁知道或可以提供一个好方法吗?

假设我想从 (0, 0) 移动到 (56, 200)。如果我使用pyautogui.moveTo(),它就会跳到那里。如果我使用autopy.mouse.smooth_move(),它可以完成工作,但动作非常假。

我希望它移动到屏幕上的随机节点,但最终到达目的地。

标签: pythonpyautoguiautopy

解决方案


.moveTo()还有另外两个参数可以传递来帮助模仿人类行为,durationtween. 第一个是到达指定点需要多长时间,第二个是改变它的行为,例如:开始快和结束慢,开始慢和结束快等等......

查看此部分以供参考。

我还导入random了创建一个随机浮点数来传递duration参数,我认为它有助于使鼠标具有更人性化的行为。

from random import *
import pyautogui as py


py.moveTo(720, 360, uniform(0.6, 2.7), py.easeOutQuad)
py.moveTo(450, 900, uniform(0.6, 2.7), py.easeOutBack)
py.moveTo(360, 720, uniform(0.6, 2.7), py.easeInOutQuad)

如果您使用的是 IDE,请键入pyautogui.ease(或py.ease),您将看到弹出窗口,其中显示了您可以尝试的所有变体。

作为旁注,人类鼠标的行为通常具有曲线并.moveTo()沿直线移动。除非您与之交互的任何程序都不需要机器人行为(例如在线视频游戏),否则这不会成为问题。他们可以检测到您的所有移动都是线性的,然后禁止您的帐户,因此请注意(或者可能制作您自己的功能,为鼠标移动添加曲线)。


推荐阅读