java - 提取维基百科信息框数据

标签 java eclipse wikipedia

我想从维基百科信息框中提取数据,并发现 Wikipedia infobox extraction in Java 中的代码这建议了一种使用 java 执行此操作的方法。我对 java 不熟悉,因为我对 python 不熟悉,所以我在 eclipse 中使用 wikixmlj-r43.jar 和代码:

import edu.jhu.nlp.wikipedia.*;
public class InfoboxParser {

    public static void main(String[] args) throws Exception{
        WikiXMLParser parser = WikiXMLParserFactory.getSAXParser("/home/siddhartha/Documents/wiki/enwiki-latest-pages-articles.xml");
        parser.setPageCallback(new PageCallbackHandler() {
            public void process(WikiPage page) {
                InfoBox infobox=page.getInfoBox();
                //do something with info box
            }
        });
        parser.parse();
    }

}

我收到以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/tools/bzip2/CBZip2InputStream
    at edu.jhu.nlp.wikipedia.WikiXMLParserFactory.getSAXParser(WikiXMLParserFactory.java:15)
    at parser.InfoboxParser.main(InfoboxParser.java:7)
Caused by: java.lang.ClassNotFoundException: org.apache.tools.bzip2.CBZip2InputStream
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 2 more

我已在 eclipse 中的属性 > java 构建路径 > 库下添加了 JAR。我得到的是它无法找到 CBZip2InputStream 类。

请帮忙。

最佳答案

    Response res = Jsoup.connect("http://en.wikipedia.org/wiki/Carbon")
            .execute();

    String html = res.body();

    Document doc = Jsoup.parseBodyFragment(html);
    Element body = doc.body();
    Elements tables = body.getElementsByTag("table");// hasClass("infobox bordered");

    for (Element table : tables) {

        if (table.className().equalsIgnoreCase("infobox bordered")) {
            System.out.println(table.outerHtml());
            break;
        }

关于java - 提取维基百科信息框数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23293325/

相关文章:

java - 玩!未找到框架 Eclipse 调试源

ios - 如何创建像Wikipedia这样的Flutter应用程序

java - 为什么java中字符的大小是2字节?

java - 可以将多种语言组合成一个二进制文件吗?

mysql - JSP 和 MySQL |创建表时出错

java - 如何判断您在Eclipse中遇到的Java错误类型

javascript - 为什么我的 wikipedia opensearch ajax 请求不能成功返回?

python - 如何使用 MediaWiki API 获取子子类别中的文章数量

java - java中迭代变量名(Tridium Baja)

java - AdColony Aurora 安卓 3.0 SetCustomID