java .jvp文件_GitHub - eddylapis/jvppeteer: Headless Chrome For Java (Java 爬虫)
Jvppeteer
本庫的靈感來自 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文件
總結
以上是生活随笔為你收集整理的java .jvp文件_GitHub - eddylapis/jvppeteer: Headless Chrome For Java (Java 爬虫)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 对中国大学MOOC课程视频批量下载的探索
- 下一篇: VS2015彻底卸载干净