Java操作Chrome浏览器的API库-cdp4j

2020-03-13 15:00:03 | 编辑

很多场景我们需要使用java程序操作,浏览器,比如说网络爬虫,html自动化点击,html渲染导出pdf,网页自动化操作等等,其实google有提供chrome的桥接包,就像数据库的driver,但是我们还查一个封装的比较好的api,终于被我找到了,这就是cdp4j.官方网址:https://github.com/webfolderio/cdp4j

cdp4j是Java库,具有清晰简洁的API,可自动执行基于Chrome / Chromium的浏览器。它使用Google Chrome DevTools协议来自动化基于Chrome / Chromium的浏览器。

1.cdp4j可以做什么?

  • 自动填写表格。您可以轻松下载和上传文本,图像,处理PDF文件或截屏。
  • 与Web应用程序之间的数据导入或导出。
  • 从Web提取任何种类的数据。
  • 自动化Web上传/下载。

2.主要特点

  • 支持Chrome DevTools协议的全部功能(tip
  • PDF打印机
  • 评估JavaScript
  • 调用JavaScript函数
  • 从浏览器(JavaScript)调用Java函数
  • 支持本地CSS选择器引擎
  • 支持XPath查询
  • 隐身浏览(私有标签)
  • 全页截屏
  • 支持并行运行
  • 自动等待DOM更改完成
  • 触发鼠标事件(单击等)
  • 发送键(文本,标签,回车等)
  • 将日志条目(JavaScript,网络,存储等)从浏览器重定向到slf4j,log4j或控制台记录器。
  • 拦截网络流量(请求和响应)
  • 以编程方式上传文件而无需第三方解决方案(不需要AWT机械手等)
  • 获取和设置元素属性
  • 支持无头模式Chrome/Chromium
  • 向后导航,前进,停止,重新加载
  • 清除缓存,清除cookie,列出cookie
  • 设置并获取表单元素的值
  • 支持事件处理
  • 支持所有知名的Java WebSocket库。

3.支持的Java版本

Oracle/OpenJDK, GraalVM & Substrate VM.

JRE和JDK都适合与此库一起使用。

注意:我们仅支持LTS版本(8和11)。

4.稳定性

该库适合在生产系统中使用。我们的库被许多知名企业客户使用。

5.下载

cdp4j-4.2.2.jar

cdp4j-4.2.2-sources.jar

6.支持平台

cdp4j已在Windows 10和Ubuntu下进行了测试,但可以在可使用Java 8 + / Graal VM / Substrate VM和Chrome / Chromium / Microsoft Edge的任何平台上运行。

注意:尽管我们没有在Mac上执行测试套件,但是许多客户运行cdp4j不会出现任何问题。请不要犹豫,报告与Mac相关的错误。

7.发行说明

CHANGELOG.md

8.无头模式

可以使用with Options.headless(boolean)选项以“无头”模式运行cdp4j 。

在Debian / Ubuntu上安装Chrome

#https ://askubuntu.com/questions/79280/how-to-install-chrome-browser-properly-via-command-line
sudo apt-get install libxss1 libappindicator1 libappindicator3-1 libindicator7
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome * .deb 可能显示“错误”,由下一行修复 
sudo apt-get install -f

在RHEL / CentOS / Fedora上安装Chrome

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
sudo yum install google-chrome-stable_current_*.rpm

9.Java文档

cdp4j API

10.记录日志

支持slf4j 1.x,log4j 1.x和自定义控制台记录器。

注意:如果您的首选日志记录库未列出,请告知我们。

11.WebSocket协议

DevTools协议使用WebSocket协议来自动化基于Chromium的浏览器。我们支持以下Java WebSocket库。

注意:如果您的首选WebSocket库未列出,请告知我们。

12.例子

我们提供了许多示例来展示如何使用cdp4j库。强烈建议在开始使用cdp4j之前运行这些示例。

13.设计原则

  • 尽可能避免外部依赖。
  • 仅支持基于Chrome / Chromium的浏览器。
  • 支持Chrome DevTools协议的全部功能。
  • 使API保持简单。
  • 支持GraalVM & Substrate VM.

 

登录后即可回复 登录 | 注册
    
关注编程学问公众号