首页 > 数据库 > 数据库开发技术 > selenium去除特征值
爬虫用的最多的工具是什么?requests?scrapy?我觉得应该是selenium,因为这个的门槛更低,基本会点编程语言就能操作。所以很多网站都会封杀selenium,其中最为简单的方法就是检测一些特征值,比如最主要的window.navigator.webdriver,其他还有window.navigator.languages、window.navigator.plugins.length等。如何避免使用selenium被识别出来?
针对一些只检测特征值的网站,我们有以下两种办法可以解决
一、手动启动浏览器用selenium连接,这样启动的浏览器就不会包含一些属性了,原理也很简单,我都不用selenium启动了,怎么可能有selenium的特征值。
启动浏览器命令(chrome所在路劲一般是C:\Users\Administrator\AppData\Local\Google\Chrome\Application):
chrome所在路劲\chrome.exe --remote-debugging-port=12306
selenium使用刚才启动的浏览器,代码如下:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_experimental_option("debuggerAddress", "127.0.0.1:12306")
driver = webdriver.Chrome(options=options)
二、使用低版本的chrome,只要低于63版本的chrome在被selenium启动后都不会包含特征值,至于如何下载低版本请自行百度。至于如何让chrome不自动更新请自行百度。
另外,这仅仅是针对只检测特征值的网站,像一些网站还会检测selenium的api操作,比如一调用driver.find_就会被识别出来,这个暂时还找不到解决方法。只能去使用pyppeteer,这个工具强大的地方在于所有的操作都是原生的,不会因为某些操作(比如获取网页源码,查找元素)被检测出来。
原文作者:Python成长路;如有侵权,请联系管理员删除。