电话咨询
19922193247
注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟删除
写在前面:本小菜鸟已经有一年多时间没更新博客了,在这段时间中一直处于摆烂状态,而且在这段时间中各种大佬都出了直接的js补环境框架,环境框架那种一力破万法的方式很强,我很羡慕,但是我是菜鸟没得那么强的js功底,扣逻辑起码得把博主痔疮坐出来(直接劝退),所以今天发一点纯补js过瑞数vmp的文章以供大家学习参考
现在是人均瑞数时代,只要涉及gov网站的或多或少都会和瑞数打打交道,不少爬虫新手被这个玩意儿打击的不轻,今天我们也来一个类似的网站
学习目标网址:
aHR0cDovL2NyZWRpdC5jdXN0b21zLmdvdi5jbi9jY3Bwd2Vic2VydmVyL3BhZ2VzL2NjcHAvaHRtbC9jY3BwaW5kZXguaHRtbA==
1.第一次请求网页状态返回状态为412或者202,那么基本可以确定这是瑞数反爬了

2.响应码中如下:

以及请求200携带的本地cookie没有数字开头,从上面几个方面可以基本确定是瑞数vmp版本
1.将412页面返回给我们的meta_content和js代码以及外链js代码扣取下来放入一个js代码中



运行一次上面的js代码

后面会依次出现document,location,我们还是本着缺啥补啥的原则一一补上
window = globalThis;
document = {}
location = {
"ancestorOrigins": {},
"href": "http://xxxx/index.html",
"origin": "http://xxx.xx.cn",
"protocol": "http:",
"host": "xxx.xx.cn",
"hostname": "xxx.xx.cn",
"port": "",
"pathname": "xxx/index.html",
"search": "",
"hash": ""
};
navigator = {
userAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
languages: ["zh-CN", "zh"],
}
}

这里我们已经补完location,但是依旧提示我们location undefined ???
这特么谁受的了,这我能忍??直接给我整红温了
直接加上我的proxy代理器

然后直接提醒我window.top ---> undefined

好嘛,我们直接把这个给补上
window.top = window;
后面直接给我出现_$dE[_$m_[43]] is not a function

这表示第一层js代码以及补完,下面我们正式进入第二层call
还是把window的代理加上

提示我们localStorage没有,所以我们把localStorage补上

由上图可知,实例对象localStorage上是没得任何方法的,所以我们要补localStorage原型上的方法

后面还有window.document.createElement需要我们补

好了window的先就讲这么多,其他的由同学们自己去补齐
后面的我们依次将document、navigator、location等加上代理
document检测了createElement等
此外代码中还有定时器,触发定时器node代码会一直跑

所以我们要把这个定时器处理掉
window.setInterval = function (){}
document.appendChild = function (){}
document.removeChild = function (){}
而且还检测了事件监听

太多了。。。,算了算了,不写了,选择躺平

最后成功拿到cookie成功请求到200页面


少更新文章是希望各位爬虫伙伴不要那么卷,希望大家理解!拜拜,下班躺平
温馨提示:我们将在您提交信息后的30分钟内与您取得联系,请您保持电话通畅,谢谢!