gpt4 book ai didi

java - 如何使用 Wikipedia API 提取/解析我要查找的链接?

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

在维基百科中,95% 的链接都指向哲学页面。我正在尝试用 Java 编写一个程序,该程序获取维基百科上的任何链接并单击第一个链接(不是引用/声音/无关链接,并且还会忽略 parent 指定的链接。)

例如,如果您从此网址 http://en.wikipedia.org/wiki/Dutch_people 开始,应该单击族裔组 http://en.wikipedia.org/wiki/Ethnic_group依此类推,直到达到哲学

您应该看到这个 Getting_to_Philosophy检查http://xefer.com/wikipedia (输入任何单词)看看它是如何工作的。

我已经编写了将数据存储在数据库中的后端,分三列 Unique_URL_Id URL_Link Next_URL_Id所以后者打印整个路径会更容易。

后端工作正常(如果我只给它一个要跟踪的链接列表)。然而,提取并查找第一个链接却无法正常工作。

这是我编写的示例代码,只是为了使用 jSoap API 从 URL 中提取

public static void extractWikiPage(String title) throws IOException{

Document doc = Jsoup.connect("http://en.wikipedia.org/wiki/Europe").get();
//int titles = doc.toString().indexOf("(");

//Get the first paragraph where the main body contents starts
String body = doc.getElementsByTag("p").first().toString();
System.out.println(body);
Document doc2= Jsoup.parse(body);
Elements href=doc2.getElementsByTag("a");
int x="".indexOf("");
for(Element h: href){
System.out.println(h.toString());
}
//System.out.println(linkText);
System.exit(1);

}

我只是找到第一次出现的 '<p>'因为 95% 的下一页链接都是从那里开始的。在该段落中,我试图获取所有链接,但我需要第一个满足我上面写的条件的链接。

如何使用 Wikipedia API 来解决提取我正在查找的数据的问题。非常感谢您的帮助。

最佳答案

/w/api.php?action=query&prop=revisions&format=json&rvprop=content&rvlimit=1&rawcontinue=&titles=Dutch_people 是返回该页面的 wiki 文本的查询。

您必须解析该结果才能获取您想要的数据。您将寻找 [[双方括号]] 内的第一件事(可能在 /\{\{Infobox(.*?)\}\}/i 之后 或类似的内容,以排除信息框中的链接以及页面上可能存在的任何维护标签),这些链接不以“某事:”开头,以消除所有跨维基链接和类别以及文件/媒体页面。

关于java - 如何使用 Wikipedia API 提取/解析我要查找的链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28008125/

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