Python实现网页自动化

之前写过一篇  使用selenium控制(接管)已打开的浏览器(chrome),并通过WebDriver值检测

1.安装selenium库

pip install selenium

2.到 http://npm.taobao.org/mirrors/chromedriver/下载 chromedriver

我的chrome是版本 97.0.4668.0(正式版本)canary (64 位),该网页最新的只有95.0.4638.17/   ,就用这个试试吧
下载win32版本,解压出  chromedriver.exe  放在 test.py所在目录

3.test.py

from selenium import webdriver

#设置自动化打开的浏览器访问网址
url = 'https://www.baidu.com'

#设置谷歌浏览器driver的目录所在
path = '.'

browser = webdriver.Chrome(executable_path=path)

#打开浏览器,并访问设置的网址。
browser.get(url)

运行,提示:PermissionError: [WinError 5] 拒绝访问。

4 通过向python310文件夹或chromedriver.exer文件的 属性 赋予 Users组完全控制权限   也未能解决

pip install --user --upgrade selenium 也不行。

最后发现是上面代码中path路径不对,将

path = '.' 改为
path = './chromedriver.exe'

这回提示:

This version of ChromeDriver only supports Chrome version 95
Current browser version is 97.0.4668.0 with binary path C:Users你的用户名AppDataLocalGoogleChrome SxSApplicationchrome.exe

5 看样子要降级chrome至95版本

5.1   访问 chrome://version/  记下个人资料路径

5.2 利用win10自带功能卸载chrome(同时删除个人资料)

5.3删除个人资料路径 C:UsersccAppDataLocalGoogleChrome SxSUser DataDefaultWeb Data文件

5.4 到https://chromium.cypress.io/ 找到95.0.4638.17 Windows (x64)版本chrome ,可惜被墙了下不了,于是百度搜索从系统之家官网下了一个  ,安装后,显示无法再更新了,先用着吧。

 重新运行脚本test.py,可以了。

总结:运行以下代码似乎通过了测试

from selenium import webdriver
from selenium.webdriver.chrome.options import Options 
chrome_options = Options()
chrome_driver = "chromedriver.exe" 
driver = webdriver.Chrome(chrome_driver, options=chrome_options)
script = '''
Object.defineProperty(navigator, 'webdriver', {
    get: () => undefined
})
'''
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
print(driver.title)
driver.get("https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html")

参考:https://www.cnblogs.com/chen1999/p/12906921.html

https://blog.csdn.net/weixin_43870646/article/details/90020874

https://www.cnpython.com/qa/103559

https://blog.csdn.net/iphone108/article/details/103138026