Python接管本地浏览器或者接管pyqt5搭建的浏览器,绕过WebDriver识别
首先打开chrome的目录,然后在命令行输入一下命令,为chrome开启一个端口
chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"
对于-remote-debugging-port值,可以指定任何打开的端口。
对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。
还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。
接下来用代码进行测试,能绕过浏览器识别到我们使用的selenium浏览器
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222") #接管使用该端口的chrome浏览器
chrome_driver = "C:\Program Files (x86)\Google\Chrome\Application\chromedriver.exe"
driver = webdriver.Chrome(chrome_driver, chrome_options=chrome_options)
print(driver.title)
2021.3.6 更新内容
此处还可以选择使用python的pyqt5 中开发的浏览器来实现绕过识别,当然这个绕过,我也不知道究竟有多少限制可以绕过,还是跟selenium一样的情况,这个我没有研究过,后面有机会我会尝试,利用pyqt5来开发浏览器可以参考我的另外一篇博客(python利用pyqt5开发一个自定义浏览器),通过pyqt5的浏览器来调用回调js来实现爬虫,这里我放出教程,具体大家可以试试
这里我放出回调js的参考链接:
https://blog.csdn/qq_20265805/article/details/82110264