我正在尝试使用pyautogui或autopy模拟类似人类的鼠标移动
你们中有谁知道或者可以提供一个好的方法吗?
假设我想从(0,0)移动到(56,200)。如果我使用pyautogui.moveTo(),它就会跳到那里。如果我使用autopy.mouse.smooth_move(),它可以做这项工作,但动作非常假。
我希望它移动到屏幕上的随机节点,但最终到达目的地。
发布于 2020-11-30 00:29:35
.moveTo()还可以传递另外两个参数来帮助模拟人类行为,即duration和tween。第一个是到达指定点需要多长时间,第二个是改变它的行为,比如:开始快和结束慢,开始慢和结束快等。
请查看此section以供参考。
我还导入了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)如果您使用的是集成开发环境,输入pyautogui.ease (或py.ease),您将看到该弹出窗口,其中显示了您可以尝试的所有变体。
顺便说一句,人类的老鼠行为通常会有一条曲线,而.moveTo()是以线性方式移动的。这不会成为问题,除非你正在与之交互的程序不需要机器人行为(比如在线视频游戏)。他们可以检测到你所有的移动都是线性的,然后禁止你的账户,所以要注意(或者你自己做一个函数,给鼠标的移动添加一条曲线)。
https://stackoverflow.com/questions/61334727
复制相似问题