首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -类似人类的鼠标行为

Python -类似人类的鼠标行为
EN

Stack Overflow用户
提问于 2020-04-21 09:51:02
回答 1查看 2.2K关注 0票数 4

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

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

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

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

EN

回答 1

Stack Overflow用户

发布于 2020-11-30 00:29:35

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

请查看此section以供参考。

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

代码语言:javascript
复制
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()是以线性方式移动的。这不会成为问题,除非你正在与之交互的程序不需要机器人行为(比如在线视频游戏)。他们可以检测到你所有的移动都是线性的,然后禁止你的账户,所以要注意(或者你自己做一个函数,给鼠标的移动添加一条曲线)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61334727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档