浏览器反调试检测

检测方式有多种

键盘监听:是否按f12
浏览器内外高度差值
检测console
利用代码运行时间差
利用tostring
检测栈的层数 caller
...

反调手段

死循环 无限递归 两个方法互相调用 计时器 ...

解决方案

非虚拟机情况下
    debugger处右键edit改为false
    js文件重载,替换js文件
虚拟机情况下(eval function)
    可以将构造器置为空
    Function.prototype.constructor = function(){}
    或者严谨一点加个判断
    var aaa = Function.prototype.constructor;
    Function.prototype.constructor = function(x){
        if (x=="debugger"){
            return function(){};
        }
        return aaa;
    }

你可能感兴趣的:(前端chrome爬虫)