当前位置: 首页 > news >正文

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

尽力局

    • chrome驱动环境配置
    • chrome打开带缓存
      • 设置待缓存打开
      • 自动关闭浏览器
      • 自动关闭浏览器弹窗
    • 最终代码
      • 找资料难啊
      • 最终效果代码
    • 依赖包和生成依赖包方法
    • 关闭谷歌升级

chrome驱动环境配置

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

114之前的版本驱动地址

chrome打开带缓存

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

设置待缓存打开

首先查看谷歌信息
chrome://version/
在这里插入图片描述
注意这里目录到User Data这就可以了。后面那个不要写进来,空格也不要去掉
executable_path=chromedriver_path这个是驱动地址,环境配置里面会说这是干什么的

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)

自动关闭浏览器

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

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

出现这些提示不用管
在这里插入图片描述

自动关闭浏览器弹窗

这种关闭谷歌之后再次打开会出现这个弹窗,这和网上的那些关弹窗的方法不是一个东西,需要修改配置文件才可以
在这里插入图片描述
这里有个大佬的博客解决了这个问题
Python阻止要恢复页面吗/Chrome未正确关闭弹窗

最终代码

找资料难啊

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

最终效果代码

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

import json
import osfrom selenium import webdriverchromedriver_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()# 配置文件文本转jsonpreferences_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():#杀掉前修改下配置,避免弹出chromeset_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 driverelse: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
from time import sleep
from driver_ import drivers, kill_chrometry:driver = drivers('11')
except:kill_chrome()driver = drivers('11')sleep(2)
driver.get('https://blog.csdn.net/aaaaaaaaanjjj')

依赖包和生成依赖包方法

python是3.7,浏览器版本120
在这里插入图片描述

关闭谷歌升级

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

相关文章:

  • ros2+gazebo建立机器人
  • leetcode 二数之和 三数之和 四数之和
  • SpringBoot 整合 ExcelEasy
  • zipimport.ZipImportError: can‘t decompress data; zlib not available
  • 安全算法(一):安全技术、加密的基础知识、哈希函数的简单介绍
  • 【QT 5 调试软件+Linux下调用脚本shell-经验总结+初步调试+基础样例】
  • C语言:判断大端小端
  • 以太网协议与DNS
  • 【基于Flask、MySQL和Echarts的热门游戏数据可视化平台设计与实现】
  • List 接口
  • Socks5与代理IP技术探析:构建安全高效的网络通信
  • 算法训练营Day15(二叉树)
  • 【噪音控制 】 铁氧体磁珠
  • 多项式回归
  • CMMI评估认证,引领行业潮流!
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • [笔记] php常见简单功能及函数
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • Angular Elements 及其运作原理
  • java多线程
  • Lucene解析 - 基本概念
  • miaov-React 最佳入门
  • overflow: hidden IE7无效
  • Promise面试题,控制异步流程
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • Redis 懒删除(lazy free)简史
  • supervisor 永不挂掉的进程 安装以及使用
  • tweak 支持第三方库
  • 创建一个Struts2项目maven 方式
  • 前端技术周刊 2019-01-14:客户端存储
  • 实习面试笔记
  • 通过git安装npm私有模块
  • 小程序 setData 学问多
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 找一份好的前端工作,起点很重要
  • HanLP分词命名实体提取详解
  • #define MODIFY_REG(REG, CLEARMASK, SETMASK)
  • #WEB前端(HTML属性)
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (2)STM32单片机上位机
  • (C语言)球球大作战
  • (学习日记)2024.02.29:UCOSIII第二节
  • (转) Android中ViewStub组件使用
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .net FrameWork简介,数组,枚举
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET/C# 获取一个正在运行的进程的命令行参数
  • .NET/C# 使用 SpanT 为字符串处理提升性能
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .net打印*三角形
  • :中兴通讯为何成功
  • @ConditionalOnProperty注解使用说明