用 Java 做了一些 Selenium 爬虫,可以爬取到一些我需要的信息到服务器上 在本地上我使用 Selenium 爬虫是没问题的,然后我想部署到 Linux 服务器上启动看看,本地用 idea 打包成 jar 然后用 java -jar 命令在 linux 上启动,但是每次启动之后调用爬虫服务就报下面的异常
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/openqa/selenium/interactions/Coordinates] with root cause
java.lang.ClassNotFoundException: org.openqa.selenium.interactions.Coordinates
at java.net.URLClassLoader.findClass(URLClassLoader.java:387) ~[na:1.8.0_401]
at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[na:1.8.0_401]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) ~[autoCrawler-0.0.1-SNAPSHOT.jar:na]
下面是我的 Selenium 配置
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--no-sandbox");
chromeOptions.addArguments("--disable-dev-shm-usage");
chromeOptions.addArguments("lang=zh_CN.UTF-8");
chromeOptions.addArguments("window-size=1920x1080");
Linux 上 Chrome 浏览器的版本是 122.0.6261.111 ,chromedriver 的版本是 122.0.6261.94 ,Linux 使用的 JDK 是 1.8 我搜索了好久也没能解决这个问题,有没有谁懂得帮我来看看这是咋回事?我属实是搞不懂了说实话
1
randy552162 261 天前
你怎么打的包?没有指定依赖包路径,当然找不到 class 了
|
2
tiRolin OP @randy552162 我试试你说的方法
我的打包方式就是在 idea 中使用 install 命令打包 |
3
ZnductR0MjHvjRQ3 261 天前
gpt 怎么说? 我一般都用 python 写这个 没用过 java
|
4
yh7gdiaYW 261 天前 2
刚开始搞?我的建议是换 playwright ,Selenium 是过气网红了
|
5
tiRolin OP @randy552162 不好意思,我不是很懂您说的什么意思,指定依赖包路径具体怎么做?我搜索了好没整明白
|
6
KING754 261 天前
感觉是打包方式出问题了。
今天 周四,V 我 50,我帮你解决。 |
7
defunct9 261 天前 1
开 ssh ,让我上去看看
|
8
veapon 261 天前
selenium 版本是什么? chrome 122 应该对应 selenium-java 4.18.x 以上才行
|
9
janda 261 天前
非常典型的一个异常了、找不到类,你这个 org.openqa.selenium.interactions.Coordinates 类没有打包进去吧
|
10
randy552162 257 天前
@tiRolin 你看下你打包的 jar 里面的结构就懂了
|