3

我想在我的 iOS 应用程序中集成维基百科(它与 mediawiki 有关吗?)

如果是这样,我想知道我将如何告诉维基百科给我一篇关于o2 arena london(它是伦敦市的一个场所)的文章。

这个例子的 url 是什么?

我在谷歌搜索,我发现了这个网址:

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&titles=o2%20arena%20london&rvprop=content&format=json&rvsection=0&rvparse=1

但这并没有提供任何数据。

还有其他网址吗?

4

2 回答 2

3

维基百科在 MediaWiki 上运行(加上一些也可用的自定义),所以您的第一个问题的答案是“是”。

首先,您需要使用OpenSearch API来查找哪些页面包含您想要的信息。搜索的o2 arena london是以下网址:

https://en.wikipedia.org/w/api.php?action=opensearch&search=o2+arena+london&format=jsonfm

这给出了以下结果:

[
    "o2 arena london",
    [
        "O2 Arena London"
    ]
]

使用这些结果,我们可以要求 Wikipedia 返回页面的 HTML。在这里,页面“O2 Arena London”是指向“O2 Arena (London)”的重定向,因此我们需要请求 Wikipedia 解决重定向问题并提供最终页面。这是使用action=parse

https://en.wikipedia.org/w/api.php?action=parse&redirects=1&page=O2+Arena+London&format=jsonfm

这给出了以下(缩短的)结果:

{
    "parse": {
        "title": "The O2 Arena",
        "revid": 578231031,
        "redirects": [
            {
                "from": "O2 Arena London",
                "to": "The O2 Arena"
            }
        ],
    "text": {
        "*": "<div class=\"dablink\">This article is about the indoor arena located in
             London.  For other uses, see <a href=\"/wiki/O2_Arena_(disambiguation)\"
             title=\"O2 Arena (disambiguation)\" class=\"mw-redirect\">O2 Arena</a>.

...

您可以显示结果,但如果没有 Wikipedia 的 CSS 样式,它可能看起来很奇怪。

另请注意,如果您想要实际的 JSON,您可以使用format=json而不是format=jsonfm.

于 2013-10-17T13:40:04.480 回答
2

如果您不想解析维基百科api输出,为什么不

http://en.wikipedia.org/w/index.php?search=O2+arena+london

您只需搜索以 . 分隔的单词+

于 2013-10-17T11:06:23.963 回答