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\你的用户名\AppData\Local\Google\Chrome SxS\Application\chrome.exe
5 看样子要降级chrome至95版本
5.1 访问 chrome://version/ 记下个人资料路径
5.2 利用win10自带功能卸载chrome(同时删除个人资料)
5.3删除个人资料路径 C:\Users\cc\AppData\Local\Google\Chrome SxS\User Data\Default\Web 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