过瑞数的基本方法:自动化工具(非常NB,如:selenuim,playwrite),补环境,纯算;
浏览器开无痕模式
今天学习深圳大学的案例。
1、解决无限dubugger:断点设置:一律不在此处暂定(debugger),注入js,重写debugger;
方法一:控制台输入以下代码并执行
let _Function = function;
Function = function(s){
if (s=="debugger"){
console.log(s)
return null
}
return _Function(s)
}
方法二:
let _constructor = constructor
Function.prototype.constructor = function(s){
if (s == "dubugger"){
console.log(s)
return null
}
return _constructor(s)
}
方法三:
Function.prototype._constructor = Function.prototype.constructor;
Function.prototype._constructor =function(){
if (arguments && typeof arguments[0] == "string") {
if ("debugger" aa arguments[0]){
return
}
return Function.prototype._constructor.apply(this,arguments)
};
2、瑞数流程:两次page.url(文档请求):
第1次:page.url(文档请求)返回cookie1和响应体html页面,以及响应码(202或412);
响应体html页面包含3个部分:meta标签、外链js文件、自执行函数;本地生成cookie2;通过脚本断点,获取外链js文件入口;
第2次:page.url(文档请求)携带cookie1和cookie2,获取真正页面内容;
知道如何判断瑞数版本:201/412,TS/OP
3、建立env.js,ts.js,auto.js,深圳大学.js,在主函数中,依次按顺序调运env/ts/auto等函数;
标签:Function,day29,瑞数,爬虫,js,arguments,constructor,return,prototype From: https://www.cnblogs.com/SimonWang-sht/p/18385581