前端js对模拟浏览器爬虫的解决方案

前端js对模拟浏览器爬虫的解决方案

  1. 我们在开发爬虫的过程中喜欢使用Selenium + Chromedriver,然后在前端中一行Javascript代码就可以识别出来,从而把你干掉

          首先我们用一下代码启动模拟浏览器

          from selenium.webdriver import Chrome

          driver = Chrome()

          如下图:

             

 

接下来我们用一行js代码来调试window.navigator.webdriver

返回的结果为ture

接下来咱们返回正常的浏览器进行查看,运行相同的代码,如下图所示

可以看到正常的浏览器为undefined,所以我们就知道了在一些网站会知道咱们的是模拟浏览器的,这只是其中的一种方法。

同样有影响的是咱们破解了某个网站的加密,在借助模拟浏览器进行解密的时候获取的加密数据不对,有一部分的原因就是对方在加密的时候对浏览器进行了判定,包括某乎的加密和某音的加密。

接下来我们来讲讲如何解决。

对js比较熟悉的同学们肯定会用下面这行代码进行解决

Object.defineProperties(navigator, {webdriver:{get:()=>undefined}});

如下图所示:
现在确实是解决了,但是我们在翻页的时候就行了

现在就又不行了,有种简单的方法,直接修改代码即可,在启动Chromedriver之前,为Chrome开启实验性功能参数excludeSwitches,它的值为['enable-automation']

from selenium.webdriver import Chrome

from selenium.webdriver import ChromeOptions

option = ChromeOptions()

option.add_experimental_option('excludeSwitches', ['enable-automation'])

driver = Chrome(options=option)

猜你喜欢

转载自blog.csdn.net/zyc__python/article/details/106690641
今日推荐