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

Java 自动下载 Chromium

Java 自动下载 Chromium

引入 ChromiumDownloader 库,该库可以下载与加载 Chromium 。ChromiumDownloader 是 selenium-java 的封装

<dependency><groupId>io.github.zimoyin</groupId><artifactId>ChromiumDownloader</artifactId><version>1.2.25</version>
</dependency>

1. 国内下载 Chromium (直连)

public static void main(String[] args) {// 获取下载器(下载器构造方法有众多参数,如有需要可自行添加)HuaweicloudChromiumDownloader downloader = new HuaweicloudChromiumDownloader();// 获取 chromium loaderChromiumLoader loader = new ChromiumLoader(downloader);// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}

2. 国外下载 Chromium

public static void main(String[] args) {// 获取 chromium loader// 使用默认下载器ChromiumLoader loader = new ChromiumLoader();// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}
  • 添加代理
public static void main(String[] args) {// 默认谷歌下载器ChromiumDownloader downloader = new ChromiumDownloader("127.0.0.1", 8070);// 获取 chromium loaderChromiumLoader loader = new ChromiumLoader(downloader);// 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/ChromeOptions options = loader.downloadAndLoad();// 创建 chromiumChromeDriver driver = new ChromeDriver(options);driver.get("https://www.baidu.com");
}

如果不想使用下载功能可以使用 EmptyDownloader

3. ChromiumEx

ChromiumEx 是对 ChromeDriver 的简略封装,提供了部分监听功能,比如监听标签创建,关闭,浏览器关闭,控制台日志等

public static void main(String[] args) {ChromiumDownloader downloader = new ChromiumDownloader("127.0.0.1", 8070);ChromiumLoader loader = new ChromiumLoader(downloader);ChromeOptions options = loader.downloadAndLoad();ChromeDriver driver = new ChromeDriver(options);// 创建 chromium 扩展// ChromiumEx 可以与 ChromeDriver 共同使用但是使用不当可能会造成意外的情况ChromiumEx chromium = new ChromiumEx(driver);// 阻塞等待 chromium 关闭chromium.blockUntilQuit(it->{// 打开一个网页// window 是对标签页的封装CWindow window = it.get("https://baidu.com");// 获取当前的 CWindow CWindow window1 = it.getWindow();});
}
  • Kotlin 直接使用 ChromeDriver.xxxx 即可,所有的方法以作为 ChromeDriver 的拓展
    ChromeDriver(options).blockUntilQuitSuspend {get(qr_code)window.cookieManager.apply {add("cna",cna)add("ucsession",ucsession)add("isg",isg)}window.cookieManager.cookies.forEach {println("${it.domain} = ${it.name}:${it.value}")}}

4. CWindow

CWindow 是对标签页的封装, 提供了众多封装,可以做到对任意一个 CWindow 进行操作,当对 CWindow 进行操作打的时候,会切换到特定的标签页进行操作

5. ChromeOptionsExKt

ChromeOptionsExKt 是封装了对 ChromeOptions 的一些拓展方法

options.enableHeadless()
// ....
  • 当然Java 也可以使用
ChromeOptionsExKt.enableHeadless(options);
//....
http://www.dtcms.com/a/181051.html

相关文章:

  • 嵌入式学习笔记 - 关于单片机的位数
  • Spring生态全景解析:Spring、Spring MVC、SpringBoot与Spring Cloud的关系
  • ClickHouse多表join的性能优化:原理与源码详解
  • element-ui分页的使用及修改样式
  • 38-算法打卡-栈与队列-前 K 个高频元素-leetcode(347)-第三十八天
  • uni-app使用web-view组件APP实现返回上一页
  • 数组和切片的区别
  • 常见问题-SQLServer中创建新数据库使用哪个中文编码?
  • 无人机电池储存与操作指南
  • LlamaIndex 第六篇 SimpleDirectoryReader
  • PostgreSQL 的 pg_advisory_lock 函数
  • Redhat 系统详解
  • Windows系统下【Celery任务队列】python使用celery 详解(二)
  • Windows 下 dll转换成lib
  • vue知识点总结 依赖注入 动态组件 异步加载
  • 【星海随笔】信息安全相关标准
  • Windows下Dify连接Ollama无效
  • 反向沙箱介绍
  • C++ —— 类的嵌套和循环依赖问题
  • KERNEL32!NlsServerInitialize函数分析创建了一个目录对象和目录对象下面的5个对象
  • 【MySQL】-- 事务
  • 华为5.7机考第一题充电桩问题Java代码实现
  • 嵌入式系统架构验证工具:AADL Inspector v1.10 全新升级
  • 优雅草星云智控系统产品发布会前瞻:SNMP协议全设备开启指南-优雅草卓伊凡
  • 代码随想论图论part06冗余连接
  • 【MySQL】存储引擎 - ARCHIVE、BLACKHOLE、MERGE详解
  • 多模型协同预测在风机故障预测的应用(demo)
  • Java设计模式之抽象工厂模式:从入门到精通
  • 服务器配置错误导致SSL/TLS出现安全漏洞,如何进行排查?
  • 在自然语言处理任务中,像 BERT 这样的模型会在输入前自动加上一些特殊token