Jvppeteer
Эта библиотека вдохновлена Puppeteer (Node.js) и в основном сохраняет его API. Библиотека создана для того, чтобы было удобно использовать Java для управления Chrome или Chromium.
Jvppeteer управляет Chromium или Chrome через DevTools. По умолчанию он работает в режиме без графического интерфейса (headless), но можно настроить его для работы в «головом» режиме.
С помощью Jvppeteer можно выполнять большинство операций, которые можно выполнить вручную в браузере! Вот несколько примеров:
Начало работы
Вот краткое руководство по использованию инструментов управления зависимостями (например, Maven или Gradle).
Maven Чтобы использовать Maven, добавьте эту зависимость в файл pom.xml:
<dependency>
<groupId>io.github.fanyong920</groupId>
<artifactId>jvppeteer</artifactId>
<version>1.1.3</version>
</dependency>
Gradle Для использования Gradle добавьте центральный репозиторий Maven в свой список репозиториев:
mavenCentral()
Затем вы можете добавить последнюю версию в свою сборку:
compile "io.github.fanyong920:jvppeteer:1.1.3"
Ведение журнала Библиотека использует SLF4J для ведения журнала и не поставляется ни с одной реализацией ведения журнала по умолчанию. В программе уровень журнала установлен на TRACE.
Автономный jar Если вы не используете какие-либо инструменты управления зависимостями, вы можете найти последний автономный jar здесь.
Быстрый старт
// Устанавливаем базовую конфигурацию запуска, здесь выбираем запуск в «головом» режиме
ArrayList<String> argList = new ArrayList<>();
// Автоматически загружаем, после первой загрузки больше не загружаем
BrowserFetcher.downloadIfNotExist(null);
LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(false).build();
argList.add("--no-sandbox");
argList.add("--disable-setuid-sandbox");
Puppeteer.launch(options);
В этом примере мы явно указываем путь запуска, и программа будет запускать соответствующий браузер в соответствии с указанным путём. Если путь не указан, программа попытается запустить браузер Chrome по пути установки по умолчанию.
// Автоматически загрузить, после первой загрузки больше не загружать
BrowserFetcher.downloadIfNotExist(null);
ArrayList<String> argList = new ArrayList<>();
LaunchOptions options = new LaunchOptionsBuilder().withArgs(argList).withHeadless(false).build();
argList.add("--no-sandbox");
argList.add("--disable-setuid-sandbox");
Browser browser = Puppeteer.launch(options);
Browser browser2 = Puppeteer.launch(options);
Page page = browser.newPage();
page.goTo("https://www.taobao.com/about/");
browser.close();
Page page1 = browser2.newPage();
page1.goTo("https://www.taobao.com/about/");
Этот пример показывает, что браузер переходит на конкретную страницу, а затем закрывается. Здесь путь запуска не указан. argList используется для хранения некоторых дополнительных параметров командной строки запуска.
// Автоматически загрузить, после первой загрузки больше не загружать
BrowserFetcher.downloadIfNotExist(null);
ArrayList<String> arrayList = new ArrayList<>();
// Генерация PDF должна выполняться в безголовом режиме, чтобы она работала
LaunchOptions options = new LaunchOptionsBuilder().withArgs(arrayList).withHeadless(true).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);
page.close();
browser.close();
В этом примере браузер переходит на определённую страницу, делает снимок всей страницы и сохраняет его в виде файла PDF. Обратите внимание, что генерация PDF возможна только в режиме headless.
// Автоматически загрузить, после первой загрузки больше не загружать
BrowserFetcher.downloadIfNotExist(null);
ArrayList<String> argList = new ArrayList<>();
LaunchOptions options = new
``` **Запуск с параметрами и без окна браузера**
LaunchOptionsBuilder().withArgs(argList).withHeadless(true).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();
В этом примере после завершения навигации по странице создаётся файл в формате JSON, содержащий конкретные данные о производительности страницы. Этот файл можно открыть с помощью инструмента разработчика Chrome и проанализировать производительность.
**5. Создание снимка экрана**
```java
BrowserFetcher.downloadIfNotExist(null);
ArrayList<String> arrayList = new ArrayList<>();
LaunchOptions options = new LaunchOptionsBuilder().withArgs(arrayList).withHeadless(true).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 )