【问题标题】:How to extract elements from a String with jsoup?如何使用 jsoup 从字符串中提取元素?
【发布时间】:2016-10-30 10:01:01
【问题描述】:

我想写一小段代码,用jsoup从href中提取“类别”。

<a href="/wiki/Kategorie:Herrscher_des_Mittelalters" title="Kategorie:Herrscher des Mittelalters">Herrscher des Mittelalters</a>

在这种情况下,我正在搜索Herrscher des Mittelalters。

我的代码读取带有 BufferedReader 的 .txt 文件的第一行。

    BufferedReader r = new BufferedReader(new InputStreamReader(new FileInputStream(new File(FilePath)), Charset.forName("UTF-8")));

    Document doc = Jsoup.parse(r.readLine());
    Element elem = doc;

我知道有获取 href-link 的命令,但我不知道在 href-link 中搜索元素的命令。

有什么建议吗?

附加信息:我的 .txt 文件包含完整的 Wikipedia HTML 页面。

【问题讨论】:

标签: java jsoup


【解决方案1】:

这应该可以从链接中获取所有标题。您可以根据需要进一步拆分标题:

    Document d = Jsoup.parse("<a href=\"/wiki/Kategorie:Herrscher_des_Mittelalters\" title=\"Kategorie:Herrscher des Mittelalters\">Herrscher des Mittelalters</a>");

    Elements links = d.select("a");

    Set<String> categories = new HashSet<>();
    for (Element script : links) {
        String title = script.attr("title");
        if (title.length() > 0) {
            categories.add(title);
        }

    }

    System.out.println(categories);

【讨论】:

    【解决方案2】:

    您可以使用 getElementsContainingText() 方法 (org.jsoup.nodes.Document) 搜索带有任何文本的元素。

    Elements elements = doc.getElementsContainingText("Herrscher des Mittelalters");
       for(int i=0; i<elements.size();i++) {
            Element element = elements.get(i);
            System.out.println(element.text());
        }
    

    【讨论】:

    • 那么最后,“类别”是标题元素的一部分吗?
    猜你喜欢
    • 2019-03-04
    • 2016-05-17
    • 2013-12-10
    • 2011-05-27
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多