java .jvp文件_GitHub - eddylapis/jvppeteer: Headless Chrome For Java (Java 爬虫)

Jvppeteer

68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6368726f6d69756d253230646f776e6c6f61642d6c61746573742d626c756568747470733a2f2f696d672e736869656c64732e696f2f6d6176656e2d63656e7472616c2f762f696f2e6769746875622e66616e796f6e673932302f6a767070657465657268747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f66616e796f6e673932302f6a7670706574656572

68747470733a2f2f736f6e6172636c6f75642e696f2f6170692f70726f6a6563745f6261646765732f6d6561737572653f70726f6a6563743d66616e796f6e673932305f6a7670706574656572266d65747269633d616c6572745f737461747573

本库的灵感来自 Puppeteer(Node.js), API 也与其基本上保持一致,做这个库是为了方便使用 Java 操控 Chrome 或 Chromium

Jvppeteer 通过 DevTools 控制 Chromium 或 Chrome。

默认情况下,以 headless 模式运行,也可以通过配置运行'有头'模式。

你可以在浏览器中手动执行的绝大多数操作都可以使用 Jvppeteer 来完成! 下面是一些示例:

生成页面 PDF。

抓取 SPA(单页应用)并生成预渲染内容(即“SSR”(服务器端渲染))。

自动提交表单,进行 UI 测试,键盘输入等。

创建一个时时更新的自动化测试环境。 使用最新的 JavaScript 和浏览器功能直接在最新版本的 Chrome 中执行测试。

捕获网站的 timeline trace,用来帮助分析性能问题。

测试浏览器扩展。

开始使用

以下是使用依赖管理工具(如 maven 或 gradle)的简要指南。

Maven

要使用 maven,请将此依赖添加到pom.xml文件中:

io.github.fanyong920

jvppeteer

1.0.4

Gradle

要使用 Gradle,请将 Maven 中央存储库添加到您的存储库列表中:

mavenCentral()

然后,您可以将最新版本添加到您的构建中。

compile "io.github.fanyong920:jvppeteer:1.0.4"

Logging

该库使用 SLF4J 进行日志记录,并且不附带任何默认日志记录实现。

调试程序将日志级别设置为 TRACE。

独立 jar

如果您不使用任何依赖项管理工具,则可以在此处找到最新的独立 jar 。

快速开始

1、启动浏览器

//设置基本的启动配置,这里选择了‘有头’模式启动

ArrayList argList = new ArrayList<>();

String path = "D:\\develop\\project\\toString\\chrome-win\\chrome.exe";

LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(false).withPipe(true).withExecutablePath(path).build();

argList.add("--no-sandbox");

argList.add("--disable-setuid-sandbox");

//启动

Puppeteer.launch(options);

在这个例子中,我们明确指明了启动路径,程序就会根据指明的路径启动对应的浏览器,如果没有明确指明路径,那么程序会尝试启动默认安装路径下的 Chrome 浏览器

2、导航至某个页面

String path ="D:\\develop\\project\\toString\\chrome-win\\chrome.exe";

ArrayList argList = new ArrayList<>();

LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(false).withExecutablePath(path).build();

argList.add("--no-sandbox");

argList.add("--disable-setuid-sandbox");

Browser browser = Puppeteer.launch(options);

Page page = browser.newPage();

page.goTo("https://www.taobao.com/about/");

browser.close();

这个例子中,浏览器导航到具体某个页面后关闭。在这里并没有指明启动路径。argList是放一些额外的命令行启动参数的,在下面资源章节中我会给出相关资料。

3、生成页面的 PDF

ArrayList argList = new ArrayList<>();

String path = "D:\\develop\\project\\toString\\chrome-win\\chrome.exe";

//生成pdf必须在无厘头模式下才能生效

LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(true).withExecutablePath(path).build();

argList.add("--no-sandbox");

argList.add("--disable-setuid-sandbox");

Browser browser = Puppeteer.launch(options);

Page page = browser.newPage();

page.goTo("https://www.baidu.com/?tn=98012088_10_dg&ch=3");

page.pdf("test.pdf");

在这个例子中,导航到某个页面后,将整个页面截图,并写成PDF文件。注意,生成PDF必须在headless模式下才能生效

4、TRACING 性能分析

ArrayList argList = new ArrayList<>();

String path = "D:\\develop\\project\\toString\\chrome-win\\chrome.exe";

LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(true).withExecutablePath(path).build();

argList.add("--no-sandbox");

argList.add("--disable-setuid-sandbox");

Browser browser = Puppeteer.launch(options);

Page page = browser.newPage();

//开启追踪

page.tracing().start("C:\\Users\\howay\\Desktop\\trace.json");

page.goTo("https://www.baidu.com/?tn=98012088_10_dg&ch=3");

page.tracing().stop();

//waifor tracingComplete

在这个例子中,将在页面导航完成后,生成一个 json 格式的文件,里面包含页面性能的具体数据,可以用 Chrome 浏览器开发者工具打开该 json 文件,并分析性能。

5、页面截图

ArrayList arrayList = new ArrayList<>();

String path = "D:\\develop\\project\\toString\\chrome-win\\chrome.exe";

LaunchOptions options = new LaunchOptionsBuilder().withArgs(arrayList).withHeadless(true).withExecutablePath(path).build();

arrayList.add("--no-sandbox");

arrayList.add("--disable-setuid-sandbox");

Browser browser = Puppeteer.launch(options);

Page page = browser.newPage();

page.goTo("https://www.baidu.com/?tn=98012088_10_dg&ch=3");

ScreenshotOptions screenshotOptions = new ScreenshotOptions();

//设置截图范围

Clip clip = new Clip(1.0,1.56,400,400);

screenshotOptions.setClip(clip);

//设置存放的路径

screenshotOptions.setPath("test.png");

page.screenshot(screenshotOptions);

页面导航完成后,设置截图范围以及图片保存路径,即可开始截图。

更多的例子请看这里

资源

执照

此仓库中找到的所有内容均已获得 Apache 许可。有关详细信息,请参见LICENSE文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值