对于使用模拟登陆等操作来爬虫的手段,已经很容易被检测了,网上很多教程是说在网站所有js代码执行之前来执行下面几个js代码来到达效果:
js1 = '''() =>{Object.defineProperties(navigator,{ webdriver:{ get: () => false}})}'''
js2 = '''() => {alert(window.navigator.webdriver)}'''
js3 = '''() => {window.navigator.chrome = {runtime: {}, }; }'''
js4 = '''() =>{Object.defineProperty(navigator, 'languages', {get: () => ['en-US', 'en']});}'''
js5 = '''() =>{Object.defineProperty(navigator, 'plugins', {get: () => [1, 2, 3, 4, 5,6],});}'''
确实修改成功了。这种写法就万无一失了吗?并不是这样的,如果此时你在模拟浏览器中通过点击链接、输入网址进入另一个页面,或者开启新的窗口,你会发现,window.navigator.webdriver
这个对象又变成true了,所以这样并非根治。
但是本文,提到的两个设置内容能够有效根治网上的一大堆无效的js注入教程,本文详细讲解,通过如何设置,来达到仿被检测的问题,一次阅读终生受益,再也不为使用模拟登陆被限制的问题而头疼。
你需要的文章下载链接在这里:点击我进行下载
先别走呗,这里有可能有你需要的同类型的文章:
python最好用的第三方库资源下载网址
详细讲解aiohttp异步请求及使用,高效率
CSS字体反爬实战,10分钟就能学会;
爬虫:js逆向目前遇到的知识点集合