tom*_*mxu 18 wiki mediawiki wikipedia
如果我有一个页面的URL,我如何使用MediaWiki webservices获取右侧的信息框信息?
siz*_*nax 18
也许有点晚了,但我想要同样的事情,并没有在这里看到任何简单的解决方案,但(正如布莱恩所指出的)事实证明使用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}}'}
Run Code Online (Sandbox Code Playgroud)
Pie*_*rre 14
我只是想解析信息框,或者你想得到一些消化数据,看看DBPedia项目:http://dbpedia.org
它扫描WP中的信息框,从维基百科创建一个RDF数据库:https://github.com/dbpedia/extraction-framework/
小智 11
没有琐碎的方法可以做到这一点.您可以尝试使用获取页面内容action=raw
,即http://en.wikipedia.org/w/index.php?action=raw&title=Douglas_Jardine
然后通过搜索找到信息框的开头{{Infobox
.然后通过找到匹配来找到结束}}
,考虑到信息框本身也可以包含{{
- }}
和{{{
- }}}
对.
每个维基百科页面都与一个维基数据项目相关联,所有这些项目都包含来自维基百科页面信息框模板的最多参数。因此,您只需从Wikidata API访问与您的 Wikipedia 页面相关联的数据。
https://www.wikidata.org/w/api.php?action=wbgetentities&sites=enwiki&props=claims&titles=Donald Trump
Run Code Online (Sandbox Code Playgroud)
回复将包括:出生日期和地点、图像、宗教信仰、母亲、父亲、孩子、身高、签名、官方网站等...,维基百科信息框内包含有关唐纳德特朗普的所有主要信息...