V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sghcel
V2EX  ›  程序员

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

  •  1
     
  •   sghcel · 2017-02-23 11:28:22 +08:00 · 15631 次点击
    这是一个创建于 2863 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    (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
    
    
    22 条回复    2024-03-04 10:58:33 +08:00
    keller
        1
    keller  
       2017-02-23 11:46:35 +08:00
    需要考虑 位移 抖动 加速度 随机值
    ho121
        2
    ho121  
       2017-02-23 11:57:57 +08:00
    应该可以做出来吧

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

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

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

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

    @coderluan 我正在考虑机器学习,没有这方面的基础,感觉无从下手。
    ic2y
        11
    ic2y  
       2017-02-23 13:56:04 +08:00
    人工录几段鼠标移动的(x 轴, y 轴,微秒级时间轴) 丢到 机器学习里训练?再 加点 随机扰动?
    sghcel
        12
    sghcel  
    OP
       2017-02-23 13:59:46 +08:00
    @ic2y 我们的想法差不多的,能加 QQ 聊聊吗?
    ic2y
        13
    ic2y  
       2017-02-23 14:10:25 +08:00
    @sghcel 我是菜菜了。主要搞编译器的。这方面懂得不多
    LeeSeoung
        14
    LeeSeoung  
       2017-02-23 14:19:56 +08:00
    极验都玩烂了还玩。。而且已经有成熟的解决方案,想自己本地玩玩的话,一是模拟模型(生成固定)跑个几天就会被极验拉黑,二是同 IP 请求到一定程度也拉黑。
    sghcel
        15
    sghcel  
    OP
       2017-02-23 14:32:15 +08:00
    @LeeSeoung 加一下 QQ562623566 ,有偿寻解决方案
    GoBeyond
        16
    GoBeyond  
       2017-02-23 16:56:44 +08:00 via Android
    我没理解错的话应该是一个匀减速运动,可以写一个坐标方程,然后将起点带入配合时间算出每时刻的坐标点
    Epirus
        17
    Epirus  
       2017-02-23 22:15:53 +08:00
    @LeeSeoung 谷歌的也可以破解吗 :)
    AvenirX
        18
    AvenirX  
       2017-02-24 10:30:44 +08:00 via iPhone
    用 Autoit MouseMove()。默认匀速,可以加入几个中间点近似一下变速
    former
        19
    former  
       2017-02-24 10:51:49 +08:00
    机器学习,多取些样本,然后模拟
    496928838
        20
    496928838  
       2017-12-26 23:22:01 +08:00
    采集工商信息的话 得稳定点的 我这里有
    airplane
        21
    airplane  
       2018-01-18 09:38:51 +08:00
    @496928838 工商的不是都改了么,随机出现滑块和点选汉字
    yangheng4922
        22
    yangheng4922  
       297 天前
    前两天刚看到一个易语言版本的 https://bbs.125.la/forum.php?mod=viewthread&tid=14813311
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3127 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:30 · PVG 21:30 · LAX 05:30 · JFK 08:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.