如何在 Java 项目中使用 Goose



如何在Java项目中使用Goose?我测试了样管和鹅的在线版本,最后一个更好,但现在它是在 Scala 中开发的。

我搜索了以前版本的罐子,但找不到它(也不是 api)。我尝试的最后一.jar是:鹅-2.1.22。我在我的 Ecplise 项目中导入了它并尝试使用以下代码:

String url = "http://www.cnn.com/2010/POLITICS/08/13/democrats.social.security/index.html";
Goose goose = new Goose(new Configuration());
Article article = goose.extractContent(url);
System.out.println(article.cleanedArticleText());

但是我收到此错误:

Exception in thread "main" java.lang.NoClassDefFoundError: scala/ScalaObject
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at daweb.main(daweb.java:212)
Caused by: java.lang.ClassNotFoundException: scala.ScalaObject
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 13 more

没有 Scala 可以使用 Goose 吗?

你应该将 Scala 库添加到你的构建路径中

问题页面中提供了一个链接,您可以在其中找到为 java 使用编译的.jar。https://github.com/GravityLabs/goose/issues

import com.gravity.goose.*;

String url = "http://www.straitstimes.com/little-india-riot";
Goose goose = new Goose(new Configuration());
Article article = goose.extractContent(url);
System.out.println(article.cleanedArticleText());

此代码用作开始。

如果你使用 Maven 管理你的依赖项,你可以将 Goose 添加到 pom 的依赖项部分.xml它的所有传递依赖项都将最终出现在类路径上。

<dependency>
    <groupId>com.gravity</groupId>
    <artifactId>goose</artifactId>
    <version>2.1.22</version>
</dependency>

你应该scala-library jar 添加到你的类路径中。如果您使用的是 Maven,请将此依赖项添加到您的项目中:

<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.10.4</version>
</dependency>

最新更新