如果我有一个页面的 url,我将如何使用 MediaWiki 网络服务获取右侧的 Infobox 信息?
8 回答
通过这个 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}}'}
如果您只是想解析信息框或想获取一些摘要数据,请查看 DBPedia 项目:http ://dbpedia.org
DBPedia 项目扫描 WP 中的信息框以从 Wikipedia 创建 RDF 数据库:https ://github.com/dbpedia/extraction-framework/
没有简单的方法可以做到这一点。您可以尝试使用 获取页面内容action=raw
,即http://en.wikipedia.org/w/index.php?action=raw&title=Douglas_Jardine
然后通过搜索找到信息框的开头{{Infobox
。然后通过查找匹配找到结尾}}
,考虑到信息框本身也可以包含-and-{{
对。}}
{{{
}}}
每个 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
回复将包括:出生日期和地点、图像、宗教、母亲、父亲、孩子、身高、签名、官方网站等...,所有关于唐纳德·特朗普的主要信息都包含在维基百科信息框中...
Tomxu - 你所说的是一个模板 - 这是一个简单的页面,你可以包含在另一个页面上。对于信息框,您需要从查看Template:Infobox开始。这为您提供了详细的说明。
您也可以按编辑(或查看代码)并将内容复制到您自己的 wiki。请记住,模板往往处于层次结构中,因此您可能需要复制 Infobox 使用的其他模板(如果您想使用它们)。每个模板都可以用 {{}} 标识,因此例如 Infobox 模板将如下所示:{{Infobox}}。
我提到了一个层次结构:您实际上会发现多个模板都使用模板:信息框。要找到它们,只需在 Wikipedia 的搜索字段中输入:Template:Infobox,然后您会找到多个示例,例如Template:Infobox writer
更新:如果您指的是 Navbox,请查看此信息。
在我们的项目中,我们使用查询从维基词典中获取数据,如下所示:
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 或其他东西进行过滤。
使用编辑模式怎么样?您可以从正确的 TextArea 开始(大部分时间包含id="wpTextBox1"
)并解析该 TextArea 的内容......我用来找到它的 URL 是(注意:section=0):
https://de.wikipedia.org/w/index.php?title=Pelephone&action=edit§ion=0
问候
使用 MediaWiki,您可以使用下面的链接查看 Wikipedia 页面右侧的信息框。如您所见,格式为 JSON(可以更改),通过将“hydrogen”一词更改为您想要的特定标题,您将获得一个带有信息框的页面。
https://en.wikipedia.org/w/api.php?action=parse&page=Template:Infobox%20hydrogen&format=json