【问题标题】:How to extract Infobox from (German) Wikipedia using MediaWiki API?如何使用 MediaWiki API 从(德语)维基百科中提取信息框?
【发布时间】:2015-04-05 21:45:28
【问题描述】:

我想从特定的 Wikipedia 页面(主要是国家/地区)中提取 Infobox 中的信息。具体来说,如果可能的话,我想在不使用Python + BeautifulSoup4 或任何其他语言+库的情况下实现这一点。我宁愿使用官方 API,因为我注意到不同 Wikipedia 子域的 CSS 标签是不同的(与其他语言一样)。

How to get Infobox from a Wikipedia article by Mediawiki API? 中声明使用以下方法会起作用,对于给定的标题 (Scary Monsters and Nice Sprites) 确实如此,但不幸的是在我尝试过的页面上不起作用(下文详述)。

https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xmlfm&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0

但是,我想Wikimedia 更改了他们的infobox 模板,因为当我运行上述查询时,我得到的只是内容,而不是infobox。例如。在以下 sn-p 中对 Europäische_Union (European_Union) 结果(以及其他)运行查询

{{Infobox Europäische Union}}
<!--{{Infobox Staat}} <- Vorlagen-Parameter liegen in [[Spezial:Permanenter Link/108232313]] -->

不过,它适用于英文版的 Wikipedia。

所以我想从中提取信息框的页面是:http://de.wikipedia.org/wiki/Europäische_Union

这是我正在使用的代码:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding("utf-8")

import lxml.etree
import urllib

title = "Europäische_Union"

params = { "format":"xml", "action":"query", "prop":"revisions", "rvprop":"content", "rvsection":0 }
params["titles"] = "API|%s" % urllib.quote(title.encode("utf8"))
qs = "&".join("%s=%s" % (k, v)  for k, v in params.items())
url = "http://de.wikipedia.org/w/api.php?%s" % qs
tree = lxml.etree.parse(urllib.urlopen(url))
revs = tree.xpath('//rev')

print revs[-1].text

我是否遗漏了一些非常重要的东西?

【问题讨论】:

标签: python web-scraping wikipedia-api mediawiki-api wikidata


【解决方案1】:

数据不得取自维基百科,而应取自 Wikidata,这是 Wikipedia 的结构化数据对应物。 (另外,这不是一个标准的信息框:它没有参数,而是填写在the template itself。)

使用 Wikidata API 模块wbgetclaims 获取欧盟的所有数据:

https://www.wikidata.org/w/api.php?action=wbgetclaims&entity=Q458

整洁多了,嗯?请参阅https://www.wikidata.org/wiki/Wikidata:Data_access 了解更多信息。

【讨论】:

    猜你喜欢
    • 2016-02-25
    • 2016-07-27
    • 2011-11-30
    • 1970-01-01
    • 2020-07-27
    • 1970-01-01
    • 2020-02-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多