fanyong920 / jvppeteer

Headless Chrome For Java (Java 爬虫)
Apache License 2.0
705 stars 158 forks source link

mac运行demo错误,已经指定withExecutablePath路径 #94

Closed jinwenchaobaby closed 2 years ago

jinwenchaobaby commented 2 years ago

2022-03-07 10:09:20.768 INFO 15318 --- [ctReadThread-21] c.r.j.transport.WebSocketTransport : Websocket serverHandshake status: 101 2022-03-07 10:09:20.771 INFO 15318 --- [ctReadThread-21] c.r.j.transport.WebSocketTransport : Connection closed by remote peer Code: 1006 Reason: 2022-03-07 10:09:20.772 INFO 15318 --- [ main] c.r.j.core.browser.BrowserRunner : Connect to browser by websocket url: ws://127.0.0.1:62327/devtools/browser/e36e6bd4-6aae-43d3-9940-4ee7713e88dd 2022-03-07 10:09:20.777 ERROR 15318 --- [ctReadThread-21] c.r.j.transport.WebSocketTransport : Websocket error:

java.lang.NullPointerException: null at com.ruiyun.jvppeteer.transport.WebSocketTransport.onClose(WebSocketTransport.java:61) ~[jvppeteer-1.1.4.jar:na] at org.java_websocket.client.WebSocketClient.onWebsocketClose(WebSocketClient.java:617) ~[Java-WebSocket-1.5.0.jar:na] at org.java_websocket.WebSocketImpl.closeConnection(WebSocketImpl.java:522) ~[Java-WebSocket-1.5.0.jar:na] at org.java_websocket.WebSocketImpl.closeConnection(WebSocketImpl.java:534) ~[Java-WebSocket-1.5.0.jar:na] at org.java_websocket.WebSocketImpl.eot(WebSocketImpl.java:583) ~[Java-WebSocket-1.5.0.jar:na] at org.java_websocket.client.WebSocketClient.run(WebSocketClient.java:510) ~[Java-WebSocket-1.5.0.jar:na] at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]

jinwenchaobaby commented 2 years ago

以下是代码: String path = "/Users/yezhi/IdeaProjects/demo02/.local-browser/mac-722234/chrome-mac/Chromium.app/Contents/MacOS/Chromium"; ArrayList arrayList = new ArrayList<>(); //生成pdf必须在无厘头模式下才能生效 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"); PDFOptions pdfOptions = new PDFOptions(); pdfOptions.setPath("test.pdf"); page.pdf(pdfOptions); page.close(); browser.close();

sagexueqi commented 2 years ago

Mac请使用本机的Chrome运行,参考路径:/Applications/Google\ Chrome.app/Contents/MacOS/Google Chrome

jinwenchaobaby commented 2 years ago

好的,使用本机chrom已经能执行成功了。 而且参考地址刚好就是本机chrome地址。感谢。