python selenium chrome114版本之后环境配置和携带缓存打开chrome

尽力局

chrome驱动环境配置

网上找到的资料,我现在安装的是120版本的,这个资料是可行的。比较简单
Selenium安装WebDriver最新Chrome驱动(含116/117/118/119)

114之前的版本驱动地址

chrome打开带缓存

说明:这种启动浏览器的方式是相当于手动打开谷歌,带缓存信息

设置待缓存打开

首先查看谷歌信息

chrome://version/

注意这里目录到User Data这就可以了。后面那个不要写进来,空格也不要去掉

executable_path=chromedriver_path这个是驱动地址,环境配置里面会说这是干什么的

python 复制代码
chrome_data_path = r'C:\Users\Cassie\AppData\Local\Google\Chrome\User Data'
options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=' + chrome_data_path)
driver = webdriver.Chrome(executable_path=chromedriver_path, options=options)

自动关闭浏览器

说明:这种打开方式需要把现有的谷歌关闭才可以不然会报错

python 复制代码
   ## 杀掉谷歌进程,防止报错
    os.system('taskkill /im chromedriver.exe /F')
    os.system('taskkill /im chrome.exe /F')

出现这些提示不用管

自动关闭浏览器弹窗

这种关闭谷歌之后再次打开会出现这个弹窗,这和网上的那些关弹窗的方法不是一个东西,需要修改配置文件才可以

这里有个大佬的博客解决了这个问题
Python阻止要恢复页面吗/Chrome未正确关闭弹窗

最终代码

找资料难啊

在网上各种查资料很费劲,找了很久才找到有用的信息,其中在带缓存打开的时候一直失败,过了一段时间发现突然好了没改代码。这是pycharm的bug,清除下它的缓存(我这个是2019版本的,新版本估计不一样,但是也是清除缓存)

最终效果代码

我这边实现了2种启动浏览器的方式,一种是普通的不带缓存啥也没有,一种是带缓存的

driver_.py

python 复制代码
import json
import os

from selenium import webdriver

chromedriver_path = r"C:\Program Files\Google\Chrome\Application\chromedriver.exe"
chrome_data_path = r'C:\Users\Cassie\AppData\Local\Google\Chrome\User Data'

def set_exit_normal():
    # 获取配置文件路径
    preferences_path = os.getenv("LOCALAPPDATA") + r'\Google\Chrome\User Data\Default\Preferences'
    # 读取配置文件
    with open(preferences_path, mode='r', encoding='utf8') as pf:
        preferences_file_text = pf.read()
    # 配置文件文本转json
    preferences_file_json = json.loads(preferences_file_text)
    # 修改退出状态为正常
    preferences_file_json['profile']['exit_type'] = 'Normal'
    # 配置好的json转回文本
    preferences_file_text = json.dumps(preferences_file_json, ensure_ascii=False, separators=(',', ':'))
    # 写入配置文件
    with open(preferences_path, mode='w', encoding='utf8') as pf:
        pf.write(preferences_file_text)

def kill_chrome():
    #杀掉前修改下配置,避免弹出chrome
    set_exit_normal()
    ## 杀掉谷歌进程,防止报错
    os.system('taskkill /im chromedriver.exe /F')
    os.system('taskkill /im chrome.exe /F')

def drivers(cache=''):
    if cache == '':
        driver = webdriver.Chrome(chromedriver_path)
        return driver
    else:
        options = webdriver.ChromeOptions()
        options.add_argument('--user-data-dir=' + chrome_data_path)
        driver = webdriver.Chrome(executable_path=chromedriver_path, options=options)
        return driver

# standard_driver=drivers()

if __name__ == '__main__':
    pass
python 复制代码
from time import sleep
from driver_ import drivers, kill_chrome

try:
    driver = drivers('11')
except:
    kill_chrome()
    driver = drivers('11')
    sleep(2)
driver.get('https://blog.csdn.net/aaaaaaaaanjjj')

依赖包和生成依赖包方法

python是3.7,浏览器版本120

关闭谷歌升级

每次升级还是挺费劲的,先关掉升级吧
关闭谷歌自动升级

相关推荐
Narutolxy33 分钟前
Python 单元测试:深入理解与实战应用20240919
python·单元测试·log4j
Amo Xiang1 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
liangbm31 小时前
数学建模笔记——动态规划
笔记·python·算法·数学建模·动态规划·背包问题·优化问题
B站计算机毕业设计超人1 小时前
计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
爬虫·python·深度学习·算法·机器学习·自然语言处理·数据可视化
羊小猪~~1 小时前
深度学习基础案例5--VGG16人脸识别(体验学习的痛苦与乐趣)
人工智能·python·深度学习·学习·算法·机器学习·cnn
waterHBO3 小时前
python 爬虫 selenium 笔记
爬虫·python·selenium
编程零零七4 小时前
Python数据分析工具(三):pymssql的用法
开发语言·前端·数据库·python·oracle·数据分析·pymssql
AIAdvocate6 小时前
Pandas_数据结构详解
数据结构·python·pandas
小言从不摸鱼6 小时前
【AI大模型】ChatGPT模型原理介绍(下)
人工智能·python·深度学习·机器学习·自然语言处理·chatgpt
FreakStudio8 小时前
全网最适合入门的面向对象编程教程:50 Python函数方法与接口-接口和抽象基类
python·嵌入式·面向对象·电子diy