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 loader
    ChromiumLoader loader = new ChromiumLoader(downloader);
    // 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/
    ChromeOptions options = loader.downloadAndLoad();
    // 创建 chromium
    ChromeDriver 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();
    // 创建 chromium
    ChromeDriver 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 loader
    ChromiumLoader loader = new ChromiumLoader(downloader);
    // 加载 chromium 如果不存在则下载,下载位置默认为 chrome/[版本]/
    ChromeOptions options = loader.downloadAndLoad();
    // 创建 chromium
    ChromeDriver 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);
//....
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值