怎么避免脚本模拟的点击事件被网页识别出来?

最近给一个网站写脚本发现用js代码触发的点击事件会被网页识别出来,不知道怎么解决。

我去搜索了一下,事件有一些属性确实可以区分isTrusted,点击位置等等。想问一下大家有什么办法吗

阅读 5k
3 个回答

用一些外挂。比如说

  • 鼠标录制(类似于鼠标连点器)
  • puppeteer( Nodejs 版 selenium )

本质来说前端检测到了之后也是发接口。所以直接分析出来接口不就好了

我搞出来了我说的这个网站。说一下自己的解决思路,不一定对其他这种反脚本点击的网站有效。
我发现我要弄的这个网站就是根据isTrusted的值来判断是否为脚本点击的,所以我在这个需要脚本点击的元素下创建一个子元素并绑定一个点击事件,将事件的isTrusted值设置为true,然后冒泡出去。之后只要点击这个子元素就能达到同样的效果了。

前端检测到了也是发接口

就是识别出来了,也是去发起 http请求,所以找到对应的接口就行了。直接跳过模拟点击的这种。

并且点击事件也不只是按钮的 onClick 事件,还有鼠标的移动,鼠标的进入(mouseenter ),鼠标的悬停(mouseover),元素的聚焦以及点击事件触发等等,所以其实也是一个很复杂的事情。

还有一些其他的方法可以去处理是否是模拟点击,所以一般都是操作录制,最后通过回放实现模拟。

推荐问题