V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tiRolin
V2EX  ›  Java

Selenium 爬虫在本地启动没有问题,但是在 Linux 上却总是启动不了,求大佬看看是什么问题

  •  
  •   tiRolin · 51 天前 · 1058 次点击
    这是一个创建于 51 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 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 我搜索了好久也没能解决这个问题,有没有谁懂得帮我来看看这是咋回事?我属实是搞不懂了说实话

    10 条回复    2024-03-11 16:54:28 +08:00
    randy552162
        1
    randy552162  
       51 天前
    你怎么打的包?没有指定依赖包路径,当然找不到 class 了
    tiRolin
        2
    tiRolin  
    OP
       51 天前
    @randy552162 我试试你说的方法
    我的打包方式就是在 idea 中使用 install 命令打包
    Motorola3
        3
    Motorola3  
       51 天前
    gpt 怎么说? 我一般都用 python 写这个 没用过 java
    yh7gdiaYW
        4
    yh7gdiaYW  
       51 天前   ❤️ 2
    刚开始搞?我的建议是换 playwright ,Selenium 是过气网红了
    tiRolin
        5
    tiRolin  
    OP
       51 天前
    @randy552162 不好意思,我不是很懂您说的什么意思,指定依赖包路径具体怎么做?我搜索了好没整明白
    KING754
        6
    KING754  
       51 天前
    感觉是打包方式出问题了。
    今天 周四,V 我 50,我帮你解决。
    defunct9
        7
    defunct9  
       51 天前   ❤️ 1
    开 ssh ,让我上去看看
    veapon
        8
    veapon  
       51 天前
    selenium 版本是什么? chrome 122 应该对应 selenium-java 4.18.x 以上才行
    janda
        9
    janda  
       51 天前
    非常典型的一个异常了、找不到类,你这个 org.openqa.selenium.interactions.Coordinates 类没有打包进去吧
    randy552162
        10
    randy552162  
       47 天前
    @tiRolin 你看下你打包的 jar 里面的结构就懂了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1519 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 16:53 · PVG 00:53 · LAX 09:53 · JFK 12:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.