如何模拟人移动鼠标产生的的轨迹?

2017 年 2 月 23 日
 sghcel

鼠标移动产生的轨迹数据格式如下:

(x 轴上相对上一个点的位移, y 轴位移,当前像素停留的时间)

x1, y1, t1
x2, y2, t2
x3, y3, t3
xn, yn, tn

表示从(x1,y1 )开始移动到(xn, yn)。

第一个点有点特殊,表示当前鼠标的位置。 从第二个点开始, x 表示的是在上一个点的基础上移动的像素。示例数据如下:

表示从坐标(30, 20 )开始移动的。 X 和 Y 都平滑平稳,但是 t 需要有人的行为,比如加速度,刚开始可能比较慢,中间快,最后要到目标位置了又慢下来了。

欢迎大家讨论

30,20,0
1,0,443
1,0,21
1,0,6
1,0,3
1,0,7
1,0,3
1,0,7
1,0,2
2,-1,13
1,0,7
1,0,5
1,0,5
1,0,6
1,0,5
1,0,5
1,0,4
1,0,6
1,0,6
1,0,10
1,0,11
1,0,8
1,0,11
1,0,5
1,0,9
1,0,10
1,0,10
1,0,12
1,0,9
0,-1,3
1,0,19
1,0,26
1,0,17
1,0,8
1,0,5
1,0,10
1,0,10
1,0,8
1,0,12
1,0,9
1,0,10
1,0,9
1,0,9
1,0,9
1,0,3
1,0,5
1,0,3
1,0,6
1,0,6
1,0,6
1,0,8
1,0,6
1,0,10
1,0,3
1,0,10
1,0,5
1,-1,7
1,0,5
1,0,7
1,0,5
1,0,7
1,0,11
1,0,9
1,0,23
1,0,17
1,0,11
1,0,10
1,0,7
1,0,7
1,0,7
1,0,4
1,0,2
1,0,8
1,0,1
1,0,3
1,0,3
1,0,3
1,0,4
1,0,2
1,0,3
1,0,3
1,0,6
1,0,7
1,0,1
1,0,3
1,0,5
1,0,3
1,0,3
1,0,4
1,0,2
1,0,7
1,0,2
1,0,5
1,0,4
1,0,6
1,0,6
1,0,6
1,0,7
1,0,9
1,0,7
1,0,4
1,0,9
1,0,8
1,0,5
0,1,6
1,0,10
1,0,7
1,0,9
1,0,4
1,0,6
1,0,4
1,0,5
1,0,4
1,0,3
1,0,2
1,0,2
1,0,3
1,0,2
1,0,3
1,0,2
1,0,3
1,0,3
1,0,3
1,0,2
1,0,2
1,0,3
1,0,3
1,0,5
2,0,10
1,0,2
1,0,4
1,0,6
1,0,6
1,0,11
1,0,7
1,0,17
1,0,29
0,1,41
1,0,11
1,0,43
1,0,123
1,0,15
1,0,13
1,1,79
1,0,12
1,0,51
1,0,9
1,0,3
1,0,22
0,0,807

16437 次点击
所在节点    程序员
22 条回复
keller
2017 年 2 月 23 日
需要考虑 位移 抖动 加速度 随机值
ho121
2017 年 2 月 23 日
应该可以做出来吧

有位置和停留时间,就可以得到以时间为变量的参数方程

速度加速度不用考虑的,因为参数方程中都包含这些信息了
sghcel
2017 年 2 月 23 日
@keller 恩,拉动就是 Y 上面的变化,加速度体现在 T 的值。一小段内位移每个点的 T 值还不是平滑的。

@ho121 我上面的轨迹只是一个例子而已,现实是要根据这些特征自动生成轨迹
dalynama22123
2017 年 2 月 23 日
是否可以 将人工移动的鼠标轨迹录制成片段,然后从库里面随机播放一段呢?
Reign
2017 年 2 月 23 日
又有人要开刷极验了?
annielong
2017 年 2 月 23 日
随机曲线吧,
Luckyray
2017 年 2 月 23 日
新来的悄悄问句淘宝的验证有人搞定了么?是不是跟极验一个套路的?
coderluan
2017 年 2 月 23 日
没有限制的话,机器学习呗
triostones
2017 年 2 月 23 日
就算轨迹模型可以做出来,但是 webdriver 的执行和代码的执行貌似不是同步的。
代码上设定两点间歌 0.5 秒, webdriver 执行的间隔可能是 1 秒。
sghcel
2017 年 2 月 23 日
@dalynama22123 录制的使用一定的次数就会被识别出来,因为无论如何组合都会有重复的片段,会被识别出来。

@Reign 哈哈,讨论一下如何?

@coderluan 我正在考虑机器学习,没有这方面的基础,感觉无从下手。
ic2y
2017 年 2 月 23 日
人工录几段鼠标移动的(x 轴, y 轴,微秒级时间轴) 丢到 机器学习里训练?再 加点 随机扰动?
sghcel
2017 年 2 月 23 日
@ic2y 我们的想法差不多的,能加 QQ 聊聊吗?
ic2y
2017 年 2 月 23 日
@sghcel 我是菜菜了。主要搞编译器的。这方面懂得不多
LeeSeoung
2017 年 2 月 23 日
极验都玩烂了还玩。。而且已经有成熟的解决方案,想自己本地玩玩的话,一是模拟模型(生成固定)跑个几天就会被极验拉黑,二是同 IP 请求到一定程度也拉黑。
sghcel
2017 年 2 月 23 日
@LeeSeoung 加一下 QQ562623566 ,有偿寻解决方案
GoBeyond
2017 年 2 月 23 日
我没理解错的话应该是一个匀减速运动,可以写一个坐标方程,然后将起点带入配合时间算出每时刻的坐标点
Epirus
2017 年 2 月 23 日
@LeeSeoung 谷歌的也可以破解吗 :)
AvenirX
2017 年 2 月 24 日
用 Autoit MouseMove()。默认匀速,可以加入几个中间点近似一下变速
former
2017 年 2 月 24 日
机器学习,多取些样本,然后模拟
496928838
2017 年 12 月 26 日
采集工商信息的话 得稳定点的 我这里有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/342552

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX