Как использовать Goose в Java Project

Как я могу использовать Goose в Java-проекте? Я тестировал онлайн-версию как котельной трубы, так и гуся, и последняя из них намного лучше, но теперь она разработана в Scala.

Я искал банку предыдущей версии, но не могу ее найти (ни api). Последний.jar, который я попробовал, это: goose-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

Можно ли использовать Goose без Scala?

4 ответа

Вы должны добавить библиотеку Scala в ваш путь сборки

Если вы управляете своими зависимостями с помощью Maven, вы можете просто добавить Goose в раздел зависимостей вашего pom.xml, и все его транзитивные зависимости окажутся на пути к классам.

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

Вы должны добавить scala-library баночка к твоему классному пути. Если вы используете Maven, добавьте эту зависимость в ваш проект:

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

На странице вопросов есть ссылка, где вы можете найти.jar, скомпилированный для использования в java. 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());

Этот код работает как начало.

Другие вопросы по тегам