【问题标题】:How to get the Infobox data from Wikipedia?如何从 Wikipedia 获取 Infobox 数据?
【发布时间】:2011-03-19 17:56:12
【问题描述】:

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

【问题讨论】:

标签: wiki mediawiki wikipedia


【解决方案1】:

通过这个 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}}'}

【讨论】:

  • 我使用了 wptools ftw!
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      如何从Wikidata item获取维基百科Donald Trump页面数据的示例:

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

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

      【讨论】:

      • 维基数据可能是提取语义信息的方法。它似乎比解析维基百科页面更健壮和可维护
      【解决方案5】:

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

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

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

      更新:如果你指的是导航盒,那么see this information

      【讨论】:

      • 模板:信息框页面似乎完全是关于描述信息框的数据结构,没有关于如何访问特定页面上的数据的信息。您能否说明如何使用该页面上的信息?
      【解决方案6】:

      在我们的项目中,我们使用查询从维基词典中获取数据,如下所示:

      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 或其他东西去过滤。

      【讨论】:

        【解决方案7】:

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

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

        问候

        【讨论】:

          【解决方案8】:

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

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-01-14
            • 1970-01-01
            • 2014-07-25
            • 2018-07-14
            • 2012-11-26
            相关资源
            最近更新 更多