反爬虫三:检测鼠标移动轨迹
python学习交流公众号 Hello Python上线啦,欢迎关注
一:检测鼠标移动轨迹场景
部分爬虫使用selenium,airtest等,模拟用户点击等操作,以及在滑块验证码等,这时候通过检测鼠标移动轨迹,将可以在一定程度上检测出机器人,并触发反爬措施
二:逻辑与实现方式
基于监听 mousemove 事件,触发,记录鼠标坐标,验证逻辑如下:
- 鼠标移动位移不连续
- 多次点击相同位置
- 点击等操作前 无位移,或位移触发次数少于阈值
三:实践
前端代码示例:从左侧进入,未检测到位移,直接点击,则认为是机器人,使用中将按钮放置div 中间,或检测在body中的移动轨迹。
<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Demo</title><style>* {margin: 0;padding: 0;border: 0;}.stage {}.track-monitor {background-color: orange;}.track-pad {height: 200px;background-color: green;}.track-coordinate {background-color: purple;color: white;height: 25px;line-height: 25px;font-size: 12px;}.track-coordinate-list {font-size: 12px;width: 100%;word-break: break-word;}</style><script>window.addEventListener('load', function () {var pad = document.getElementsByClassName('track-pad')[0];var monitor = document.getElementsByClassName('track-monitor')[0];var coordinate = document.getElementsByClassName('track-coordinate')[0];var clist = document.getElementsByClassName('track-coordinate-list')[0];var reset = document.getElementsByTagName('button')[1];var btn_click11 = document.getElementsByTagName('button')[0];var fixSize = function () {monitor.width = window.innerWidth;};var context = monitor.getContext('2d');var cset = [];window.addEventListener('resize', function () {fixSize();});pad.addEventListener('mousemove', function (e) {context.strokeStyle = 'white';context.lineTo(e.x, e.y);context.stroke();coordinate.innerHTML = e.x + ':' + e.y;cset.push(coordinate.innerHTML);clist.innerHTML = cset.join(',');});reset.addEventListener('click', function () {fixSize();cset = [];clist.innerHTML = '';coordinate.innerHTML = '在绿色的方块中滑动鼠标';});btn_click11.addEventListener('click', function () {if (cset.length < 10){console.log('机器人');alert('机器人')}else {console.log('real people')}fixSize();cset = [];clist.innerHTML = '';coordinate.innerHTML = '在绿色的方块中滑动鼠标';});fixSize();});</script>
</head>
<body>
<div class="stage"><div class="track-pad"><button>点我</button></div><canvas width="100" height="200" class="track-monitor"></canvas><div class="track-coordinate">在绿色的方块中滑动鼠标</div><button>重置</button><div class="track-coordinate-list"></div>
</div>
</body>
</html>
四:问题
- mosemove 触发时间粒度问题。
- 前端有一些鼠标移动插件,需要具体分析。
- 记录大量位移信息,需要做相应处理
反爬虫三:检测鼠标移动轨迹相关推荐
- 浏览器端反爬虫特征收集之字体检测
1 背景介绍 现今的反爬虫系统主要思路是通过收集访问者的设备特征和行为,并在后台进行行为与特征分析识别出异常流量,达到反爬虫的目的. 这些特征中字体也是一项重要的采集项.即收集一款浏览器当前有多少可用 ...
- 爬虫与反爬虫技术分析
科普: 什么是爬虫: 百度百科:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还 ...
- python3反爬虫原理与绕过实战 网盘_Python 3反爬虫原理与绕过实战
第 1章 开发环境配置 1 1.1 操作系统的选择 1 1.1.1 Ubuntu 简介 1 1.1.2 VirtualBox 的安装 2 1.1.3 安装 Ubuntu 3 1.1.4 全屏设置 8 ...
- 爬虫需谨慎!那些你不知道的爬虫反爬虫套路,学起来!
目录 前言 一.爬虫反爬虫运行现状 1.真实世界的爬虫比例 2.哭笑不得的决策思路 二.爬虫反爬虫技术现状 1.为python平反 2.无法绕开的误伤率 3.前端工程师的逆袭 4.误伤,还是误伤 三. ...
- 【过于硬核慎入】这是我遇到过的最强反爬虫(反反爬虫教程)
https://www.passkou.com/ 阅读本文前 在阅读本文前,你需要具有以下所有知识,否则你无法读懂: HTML + JS 基础 HTTP 基本知识 简单的密码学知识(MD5.AES) ...
- 那些你不知道的爬虫反爬虫套路
转自:https://zhuanlan.zhihu.com/p/27299841?columnSlug=ctriptech 前言 爬虫与反爬虫,是一个很不阳光的行业. 这里说的不阳光,有两个含义. 第 ...
- 爬虫与反爬虫技术简介
vivo 互联网安全团队- Xie Peng 互联网的大数据时代的来临,网络爬虫也成了互联网中一个重要行业,它是一种自动获取网页数据信息的爬虫程序,是网站搜索引擎的重要组成部分.通过爬虫,可以获取自己 ...
- html中::before 爬虫_反反爬虫系列(四)
过完年,好了,咱们接着更新反反爬虫系列 至于之前有朋友表示出一下1688呀,x宝的反反爬虫 说实在的,阿里系的反爬虫很厉害,我自愧不能搞定. 比如x宝的登录,用了selenium + chrome的朋 ...
- 关于反爬虫,看这一篇就够了
编者:本文来自携程酒店研发部研发经理崔广宇在第三期[携程技术微分享]上的分享,以下为整理的内容概要.墙裂建议点击视频回放,"现场"围观段子手攻城狮大崔,如何高智商&高情商地 ...
最新文章
- 2019牛客网暑假多校训练第四场 K —number
- Html 教程 (8)表单
- java虚拟机的俩种异常
- mybatis plus 事务管理器_SpringBoot第七篇:springboot开启声明式事务
- linux 2.6内核进程调度,Linux2.6内核进程调度系列--scheduler_tick()函数2.更新实时进程的时间片,...
- 【语音处理】基于matlab GUI音频信号提取分析【含Matlab源码 1738期】
- LPDIRECTDRAW7编译错误的解决方法
- 【MATLAB】基本绘图函数(涵盖所有基本绘图指令)
- 流程图里的形状符号的代表意义
- C++编程 杨辉三角
- 如何破“万事开头难”?试试这三招
- eLife:情绪学习对人脑记忆整合的回溯性促进机制
- 计算机英语boot,电脑开不了机显示英文boottmgr
- JVM G1GC参数配置
- 清明节主题PPT模板
- 关于安卓自定义进度条(二)
- google 广告条代码
- 2019 Java程序员(方向)
- 数字图像处理中对数变换与Gamma变换
- 短视频微信小程序界面