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

2017-02-23 11:28:22 +08:00
 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

15631 次点击
所在节点    程序员
22 条回复
keller
2017-02-23 11:46:35 +08:00
需要考虑 位移 抖动 加速度 随机值
ho121
2017-02-23 11:57:57 +08:00
应该可以做出来吧

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

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

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

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

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

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

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

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

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

© 2021 V2EX