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

关闭谷歌升级

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

相关推荐
overmind18 小时前
oeasy Python 115 列表弹栈用pop删除指定索引
开发语言·python
hnxaoli18 小时前
win10程序(十六)通达信参数清洗器
开发语言·python·小程序·股票·炒股
电饭叔19 小时前
文本为 “ok”、前景色为白色、背景色为红色,且点击后触发 processOK 回调函数的 tkinter 按钮
开发语言·python
雷电法拉珑20 小时前
财务数据批量采集
linux·前端·python
shangjian00721 小时前
Python基础-With关键字
python
zchxzl21 小时前
亲测2026京津冀可靠广告展会
大数据·人工智能·python
时71 天前
Python 项目环境隔离配置指南:pyenv + venv 组合使用
python
gc_22991 天前
学习python调用olefile库解析ole文件的基本用法(续)
python·struct·ole
岱宗夫up1 天前
基于OpenCode搭建Skills环境
python·低代码·ai编程
-To be number.wan1 天前
用 Pandas 分析自行车租赁数据:从时间序列到天气影响的完整实训
python·数据分析·pandas·数据可视化