如何从维基百科文件中获取描述人员列表?
示例:我的文件ID为5457009.维基百科链接为http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F048807-0025,_Bonn,_Neubau_Kanzleramt,_Schmidt_im_Arbeitszimmer.jpg
从此文件中提取人员元数据的API请求是什么样的(Schmidt,Helmut:Bundeskanzler,Verteidigungsminister,SPD,Bundesrepublik Deutschland)
以下是另外一个描述了3个人的例子:http://commons.wikimedia.org/wiki/File:Bundesarchiv_B_145_Bild-F009740-0002,_Presseclub_Bonn,_Bildungspolitiker_aus_Finnland.jpg
答案 0 :(得分:5)
不幸的是,此信息不是以任何结构化方式存储的 - 您在图像描述页面上看到的表格只是一个呈现给HTML表格的MediaWiki模板。
要从模板中提取信息,您基本上有三个选项:
prop=revisions
和rvprop=content
的图片说明页面的Fetch the raw wiki markup并自行解析。不幸的是,可靠地解析wikitext可能有点棘手,但是有几个MediaWiki bot frameworks内置了非常好的解析器。
Fetch the parsed HTML version of the page使用action=parse
并使用标准HTML解析器从表格中提取文字。
自MediaWiki 1.20以来,您还可以选择告诉MediaWiki为您和return an XML parse tree解析模板标记,方法是将参数generatexml=1
传递给prop=revisions
或action=parse
。相关部分看起来像这样(为了便于阅读而重新格式化):
<template>
<title>BArch-image</title>
...
<part>
<name>depicted people</name> =
<value>
* Schmidt, Helmut: Bundeskanzler, Verteidigungsminister, SPD, Bundesrepublik Deutschland
</value>
</part>
...
</template>
这不是一个非常干净的数据表示 - 它仍然包含一些未解析的wiki文本元素,比如*
表示项目符号列表项 - 但它应该比完全原始的MediaWiki模板标记更容易解析