还要加上模拟真实鼠标移动轨迹的代码
时间: 2023-07-09 22:27:04 浏览: 53
好的,以下是加上模拟真实鼠标移动轨迹的代码:
```python
import pyautogui
import math
import random
# 设置屏幕分辨率,如果和实际不符,请修改为实际分辨率
SCREEN_WIDTH, SCREEN_HEIGHT = 1920, 1080
# 定义缓动函数
def easeInOutQuad(t):
if t < 0.5:
return 2 * t * t
else:
return -1 + (4 - 2 * t) * t
# 定义鼠标移动函数
def mouseMove(x, y, duration=1, tween=easeInOutQuad):
# 获取当前鼠标位置
currentX, currentY = pyautogui.position()
# 计算移动距离和时间间隔
distance = math.sqrt((x - currentX) ** 2 + (y - currentY) ** 2)
steps = int(distance / 5)
interval = duration / steps
# 计算每一步的位置和时间进度,并移动鼠标
for i in range(steps + 1):
t = i / steps
ease_t = tween(t)
newX = currentX + (x - currentX) * ease_t
newY = currentY + (y - currentY) * ease_t
# 模拟真实鼠标移动轨迹
pyautogui.moveTo(newX, newY, duration=interval)
# 在每一步结束后随机等待一段时间
time.sleep(random.uniform(0.001, 0.003))
# 调用函数控制鼠标移动
mouseMove(SCREEN_WIDTH // 2, SCREEN_HEIGHT // 2, duration=2, tween=easeInOutQuad)
```
在这个代码中,我们加入了模拟真实鼠标移动轨迹的功能。具体来说,在每一步结束后,我们随机等待一段时间,这个时间是一个随机数,范围为 0.001 到 0.003 秒。这样可以让鼠标移动看起来更加自然,不会像机器人一样直线移动。
需要注意的是,由于这个随机等待时间的存在,鼠标移动的时间会稍微有些偏差,但是这个偏差非常小,一般不会影响到实际使用。如果需要更加精确的鼠标移动,可以适当调整随机等待时间的范围,并根据实际情况进行调整。