Jvppeteer通过 DevTools 控制 Chromium 或 Chrome。
默认情况下,以headless模式运行,也可以通过配置运行'有头'模式。
你可以在浏览器中手动执行的绝大多数操作都可以使用 Jvppeteer 来完成! 下面是一些示例:
要使用maven,请将此依赖添加到pom.xml文件中:
<dependency> <groupId>com.ruiyun</groupId> <artifactId>jvppeteer</artifactId> <version>1.0.0-SNAPSHOT</version> </dependency> <!--我现在还没发布到maven,只是提前先写出来 -->
要使用Gradle,请将Maven中央存储库添加到您的存储库列表中:
mavenCentral()
然后,您可以将最新版本添加到您的构建中。
compile "com.ruiyun:jvppeteer:1.0.0-SNAPSHOT"
该库使用 SLF4J 进行日志记录,并且不附带任何默认日志记录实现。
调试日志将使用日志级别进行DEBUG。
//设置基本的启动配置,这里选择了‘有头’模式启动 LaunchOptions options = new OptionsBuilder().withHeadless(false).withExecutablePath("C://Program Files (x86)//Google//Chrome//Application//chrome.exe").build(); //启动 Puppeteer.launch(options);
在这个例子中,我们明确指明了启动路径,程序就会根据指明的路径启动对应的浏览器,如果没有明确指明路径,那么程序会尝试启动默认安装路径下的Chrome浏览器
ArrayList<String> arrayList = new ArrayList<>(); LaunchOptions options = new OptionsBuilder().withArgs(arrayList).withHeadless(false).build(); arrayList.add("--no-sandbox"); arrayList.add("--disable-setuid-sandbox"); Browser browser = Puppeteer.launch(options); Page page = browser.newPage(); page.goTo("https://www.taobao.com/about/"); browser.close();
这个例子中,浏览器导航到具体某个页面后关闭。在这里并没有指明启动路径。arrayList是放一些额外的命令行启动参数的,在下面资源章节中我会给出相关资料。
ArrayList<String> arrayList = new ArrayList<>(); String path = "D://develop//project//toString//chrome-win//chrome.exe; //生成pdf必须在无厘头模式下才能生效 LaunchOptions options = new OptionsBuilder().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"); PDFOptions pdfOptions = new PDFOptions(); pdfOptions.setPath("test.pdf"); page.pdf(pdfOptions);
在这个例子中,导航到某个页面后,将整个页面截图,并写成PDF文件。注意,生成PDF必须在headless模式下才能生效
ArrayList<String> arrayList = new ArrayList<>(); String path = "D://develop//project//toString//chrome-win//chrome.exe"; LaunchOptions options = new OptionsBuilder().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.tracing().start("C://Users//howay//Desktop//trace.json",true,new HashSet<>()); page.goTo("https://www.baidu.com/?tn=98012088_10_dg&ch=3"); //发出追踪结束信号 page.tracing().stop();
在这个例子中,将在页面导航完成后,生成一个json格式的文件,里面包含页面性能的具体数据,可以用Chrome浏览器开发者工具打开该json文件,并分析性能。
更多的例子请看 这里
此仓库中找到的所有内容均已获得Apache许可。有关详细信息,请参见 LICENSE
文件