Python - 像老鼠一样的人类行为

Den*_*ise 8 python autopy pyautogui

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

有哪位知道或者可以提供一下好的方法吗?

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

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

And*_*one 7

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

查看本以供参考。

我还导入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)
Run Code Online (Sandbox Code Playgroud)

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

顺便说一句,人类老鼠的行为通常有一条曲线,并.moveTo()沿直线移动。这不会成为问题,除非您正在交互的任何程序不需要机器人行为(例如在线视频游戏)。他们可能会检测到您的所有移动都是线性的,然后禁止您的帐户,因此请注意(或者可能创建您自己的函数,为鼠标移动添加曲线)。