我看到一些同名的人。
如Rico Rodriguez
http://en.wikipedia.org/wiki/Rico_Rodriguez
显示有2人(pageIDs)
但是通过使用这个api,我只能获得一个pageID
http://en.wikipedia.org/w/api.php?action=query&titles=Rico_Rodriguez&format=json
我怎样才能得到所有这两个人? pageIDs?
答案 0 :(得分:4)
正如leo所提到的,在维基百科上,你必须分析消歧页面。但是,wikidata.org现在正在收集有关维基百科上描述的内容的数据集。维基数据具有“标签”和“别名”的概念,对于多个页面可以是相同的,并且每种语言都是不同的。这是一个查询,您可以使用它查找“Rico Rodriguez”的所有维基数据条目:
https://www.wikidata.org/w/api.php?action=wbsearchentities&search=Rico%20Rodriguez&language=en
然后,您可以要求每个“数据项”的“附加链接”:
这将为您提供每个维基百科语言版本的相应页面标题。然后,您可以转到相应的Wiki的API并询问页面ID。
答案 1 :(得分:0)
所有MediaWiki页面标题都是唯一的,并且编辑人员手动处理歧义,因此无法确定是否有多个具有相同名称的人员。但是,您可以检查该页面是否为消歧页面,如示例所示:
https://en.wikipedia.org/w/api.php?action=query&titles=Rico_Rodriguez&prop=pageprops
在disambiguation
下返回pageprops
。
要将页面链接起来,您必须解析wiki代码。消歧链接看起来可能是真的,所以没有简单的方法可以捕获它们,但只要你在一个单一的语言版本中工作,语法就有可能或多或少地保持一致。在英语维基百科中,usually be Rico Rodriguez (musician)
或Kimberley, British Columbia
。
但是,消歧页面可能非常复杂。例如:https://en.wikipedia.org/wiki/Joker