|
5精币
真实鼠标移动轨迹[backcolor=rgba(255, 255, 255, 0.5)]1、pynput 控制移动版本
import random
import time
import pynput
ctr = pynput.mouse.Controller()
window_size = (1366, 768)
step = 20
target = (1366, 768)
end = (1351, 45)
time.sleep(5)
def move_test(ctr, step, end):
# start = ctr.position
start = (200, 200)
print("起始坐标:", start)
for i in range(0, step):
if i <= step / 2:
dx = int(random.random() * (end[0] - start[0]) / step)
dy = int(random.random() * (end[1] - start[1]) / step)
else:
dx = int(random.random() * (end[0] - start[0]) / step * 2)
dy = int(random.random() * (end[1] - start[1]) / step * 2)
time.sleep(random.random() * 0.001)
print(dx, dy)
ctr.move(dx, dy)
print("中间坐标:", ctr.position)
ctr.position = end
print("结束坐标:", end)
move_test(ctr, step, end)
[backcolor=rgba(255, 255, 255, 0.5)]2、生成相对移动轨迹列表,可以对接任何模块,但不同控制模块移动有差异
import random
import time
window_size = (1366, 768)
step = 20
start_pos = (200, 200) # 起始坐标
target_pos = (1351, 45) # 终点坐标
relative_pos_list = []
def move_pos(start_pos, target_pos, step=10):
print("起始坐标:", start_pos)
for i in range(0, step):
if i <= step / 2:
dx = int(random.random() * (target_pos[0] - start_pos[0]) / step)
dy = int(random.random() * (target_pos[1] - start_pos[1]) / step)
else:
dx = int(random.random() * (target_pos[0] - start_pos[0]) / step * 2)
dy = int(random.random() * (target_pos[1] - start_pos[1]) / step * 2)
# time.sleep(random.random() * 0.001)
print(dx, dy)
relative_pos_list.append((dx, dy))
move_pos(start_pos, target_pos, step)
print(relative_pos_list)
# 测试
import pyautogui
time.sleep(3)
pyautogui.moveTo(start_pos) # 先移动到起始坐标
for pos in relative_pos_list: # 然后轨迹一段
pyautogui.move(pos)
pyautogui.moveTo(target_pos) # 最后进准到目标点
|
|