21

如果我有一个页面的 url,我将如何使用 MediaWiki 网络服务获取右侧的 Infobox 信息?

4

8 回答 8

24

通过这个 Python 库使用 Mediawiki API:https ://github.com/siznax/wptools

用法:

import wptools
so = wptools.page('Stack Overflow').get_parse()
infobox = so.data['infobox']
print(infobox)

输出:

{'alexa': '{{Increase}} 34 ( {{as of|2019|12|15|lc|=|y}} )',
 'author': '[[Jeff Atwood]] and [[Joel Spolsky]]',
 'caption': 'Screenshot of Stack Overflow in February 2017',
 'commercial': 'Yes',
 'content_license': '[[Creative Commons license|CC-BY-SA]] 4.0',
 'current_status': 'Online',
 'language': 'English, Spanish, Russian, Portuguese, and Japanese',
 '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',
 'screenshot': 'File:Stack Overflow homepage, Feb 2017.png',
 'type': '[[Knowledge market]]',
 'url': '{{URL|https://stackoverflow.com}}'}
于 2012-04-16T20:06:32.963 回答
13

如果您只是想解析信息框或想获取一些摘要数据,请查看 DBPedia 项目:http ://dbpedia.org

DBPedia 项目扫描 WP 中的信息框以从 Wikipedia 创建 RDF 数据库:https ://github.com/dbpedia/extraction-framework/

于 2010-07-28T12:21:37.490 回答
11

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

于 2010-07-26T10:28:28.993 回答
8

每个 Wikipedia 页面都与一个 Wikidata 项目相关联,所有这些项目都包含来自 Wikipedia 页面的 Infobox 模板的大多数参数。因此,您只需从Wikidata API访问与您的 Wikipedia 页面关联的数据。

如何从Wikidata item获取 Wikipedia Donald Trump页面的数据的示例:

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

回复将包括:出生日期和地点、图像、宗教、母亲、父亲、孩子、身高、签名、官方网站等...,所有关于唐纳德·特朗普的主要信息都包含在维基百科信息框中...

于 2016-12-09T19:26:33.880 回答
1

Tomxu - 你所说的是一个模板 - 这是一个简单的页面,你可以包含在另一个页面上。对于信息框,您需要从查看Template:Infobox开始。这为您提供了详细的说明。

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

我提到了一个层次结构:您实际上会发现多个模板都使用模板:信息框。要找到它们,只需在 Wikipedia 的搜索字段中输入:Template:Infobox,然后您会找到多个示例,例如Template:Infobox writer

更新:如果您指的是 Navbox,请查看此信息

于 2010-07-26T17:24:35.010 回答
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 或其他东西进行过滤。

于 2010-07-28T12:15:08.800 回答
0

使用编辑模式怎么样?您可以从正确的 TextArea 开始(大部分时间包含id="wpTextBox1")并解析该 TextArea 的内容......我用来找到它的 URL 是(注意:section=0):

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

问候

于 2015-07-22T10:18:22.607 回答
-1

使用 MediaWiki,您可以使用下面的链接查看 Wikipedia 页面右侧的信息框。如您所见,格式为 JSON(可以更改),通过将“hydrogen”一词更改为您想要的特定标题,您将获得一个带有信息框的页面。

https://en.wikipedia.org/w/api.php?action=parse&page=Template:Infobox%20hydrogen&format=json

于 2017-05-26T15:54:54.247 回答