gpt4 book ai didi

java - 获取维基百科类别链接

转载 作者:行者123 更新时间:2023-12-01 15:00:30 25 4
gpt4 key购买 nike

我想要做的是获取分配给特定维基百科文章的类别以及指定类别的 href 值。

示例:

Given this article :

"Bread" & "Breakfast foods" are the category names and "http://en.wikipedia.org/wiki/Category:Breads" & "http://en.wikipedia.org/wiki/Category:Breakfast_foods" are the categorylinks

我在 java 中使用 Jodd 库中的“Jerry”来执行此操作,以便在 java 中使用 JQuery。

到目前为止,我已使用以下代码来获取类别名称:

File file = new File(SystemUtil.getTempDir(), "temp");
NetUtil.downloadFile(url, file);
Jerry doc = Jerry.jerry(FileUtil.readString(file));
String category=doc.$("div#mw-normal-catlinks").text();

这将返回 catlinks div 内的纯文本。由于此 div 包含 ul,其中 li 元素代表单个类别,因此迭代列表项元素以获取类别名称和链接似乎更复杂。

为此,我尝试了以下操作:

doc.$("div#mw-normal-catlinks").children().each(new CategoryFinder());

这里的想法是使用 JerryFunction对象来获取每个子项的名称和链接(每个子项都需要一个 JerryFunction 作为参数)。您可能会注意到,我在 div 上调用了 Children() 而不是 ul 元素 - 这是因为缺乏如何做到这一点的线索。

如何才能使这种方法发挥作用?另外,还有其他方法来获取类别名称和链接吗?

最佳答案

您可能应该使用 Wikipedia API,但无论如何,以下是与 Jodd Jerry 一起使用的方法:

    File file = FileUtil.createTempFile();
NetUtil.downloadFile("http://en.wikipedia.org/wiki/Toast", file);
Jerry doc = Jerry.jerry(FileUtil.readString(file));
Jerry category = doc.$("div#mw-normal-catlinks");
category.$("ul li").each(
new JerryFunction() {
public boolean onNode(Jerry $this, int index) {
System.out.println($this.text());
return true;
}
});

这将打印出:

Breads
Breakfast foods

关于java - 获取维基百科类别链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com