2010-07-22 73 views
15

如果我有一个页面的网址,如何使用MediaWiki webservices获取右侧的信息框信息?如何从维基百科获取信息框数据?

+1

您必须谈论某些页面上使用的框,例如,一个关于一个人的页面,涵盖基本的细节(体重,身高,年龄......) - 对吗? – Wikis 2010-07-23 10:53:06

+0

是的,这是正确的 – tomxu 2010-07-24 06:19:02

+1

@tomux - 如果他们真的回答你的问题,请接受其中一个答案。 – Wikis 2010-09-18 16:52:41

回答

9

有没有微不足道的方法来做到这一点。您可以尝试使用获取的action=raw页面内容,即http://en.wikipedia.org/w/index.php?action=raw&title=Douglas_Jardine 然后找到信息框的通过搜索{{Infobox开始。然后找到找到匹配}},考虑到信息框本身也可以包含{{结束 - }}{{{ - }}}双。

1

Tomxu - 你在谈论的是一个模板 - 这是一个简单的页面,您可以包括另一页上。对于信息框,您需要先看看Template:Infobox。这给你详细的说明。

您也可以按编辑(或视图代码)和内容复制到您自己的wiki。请记住,模板倾向于处于层次结构中,因此您可能需要复制Infobox使用的其他模板(如果要使用它们)。每个模板都可以用{{}}标识,例如Infobox模板将如下所示:{{Infobox}}。

我提到一个层次:你实际上会发现多个模板,所有使用模板:信息框。要找到它们,只需在维基百科的搜索字段中输入以下内容:Template:Infobox然后您会找到多个示例,例如Template:Infobox writer

更新:如果你的意思是Navboxes,那么see this information

0

在我们的项目中,我们使用查询的维基获取数据是这样的:

 
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D%22http%3A%2F%2Fen.wiktionary.org%2Fwiki%2Flife%22%20and%20xpath%3D'%2F%2Fdiv%5B%40id%3D%22bodyContent%22%5D'&format=xml&diagnostics=false&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys&callback=recwiki 

我对它有没有全面的了解,但它的作品。输出结果可以使用jquery或其他方法进行过滤。

13

也许有点晚,但我想同样的事情,并没有在这里看到任何简单的解决方案,但(如布赖恩指出的)事实证明不是太难使用MediaWiki的API与此库:

https://github.com/siznax/wptools

用法:

>>> import wptools 
>>> so = wptools.page('Stack Overflow').get_parse() 
>>> so.infobox 
{'alexa': '{{DecreasePositive}}', 
'author': '[[Joel Spolsky]] and [[Jeff Atwood]]', 
'caption': 'Screenshot of Stack Overflow as of February 2015', 
'commercial': 'Yes', 
'content_license': '[[Creative Commons license|CC-BY-SA]] 3.0', 
'current status': 'Online', 
'landscape': 'yes', 
'language': 'English', 
'launch date': '{{start date and age|2008|9|15}}', 
'logo': 'Stack Overflow logo.svg', 
'name': 'Stack Overflow', 
'owner': 'Stack Exchange, Inc.', 
'programming_language': '[[C Sharp (programming language)|C#]]', 
'registration': 'Optional; Uses [[OpenID]]', 
'revenue': '', 
'screenshot': 'Stack Overflow homepage.png', 
'slogan': '', 
'type': '[[:Category:Knowledge markets|Knowledge markets]]', 
'url': '{{URL|https://stackoverflow.com}}'} 
+0

不是那么好。你真的需要检查你的提取是否正确。有时对于信息框中的特定项目,它会提取整个链接 – 2017-07-21 08:15:53

+2

@HaniGotc我们做了一些改进。让我们知道你是否仍然有问题。 – siznax 2018-01-30 03:39:08

0

有关使用编辑模式是什么?你可以在正确的文本区域刚开始(大部分时间包含id="wpTextBox1"),并解析文本区的内容...... 我用来查找出来的网址是(注:部分= 0):

https://de.wikipedia.org/w/index.php?title=Pelephone&action=edit&section=0 

问候

2

每个维基百科页面与一个维基数据项关联,且所有这些项目包括从维基百科页面的信息框模板的大多数参数。因此,您只需要访问Wikidata API与维基百科页面相关的数据。

一个例子如何从Wikidata item得到维基百科Donald Trump页面的数据:

https://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwiki&props=claims&titles=Donald Trump 

响应包括:出生,图像,宗教,母亲,父亲,孩子,身高,签名的日期和地点,官方网站等等,所有关于唐纳德特朗普的主要信息都包含在Wikipedia Infobox中。

相关问题