iOS应用中的维基百科

3

我想在我的iOS App中集成维基百科(它是否与MediaWiki有关?)

如果是这样的话,我想知道如何告诉维基百科给我一篇关于伦敦o2体育馆(例如伦敦市的一个场馆)的文章。

例如,这个例子的URL是什么?

我在谷歌上搜索到了这个URL:

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

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

还有其他的URL吗?

2个回答

3
维基百科运行在MediaWiki上(还有一些自定义内容也可用),所以你第一个问题的答案是“是”。首先,你需要使用OpenSearch API来查找包含你想要信息的页面。搜索o2 arena london的URL如下:

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

这将会给出以下结果:

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

使用这些结果,我们可以请求维基百科返回页面的HTML代码。这里,页面“O2 Arena London”是指向“O2 Arena (London)”的重定向,因此我们需要请求维基百科解析重定向并给出最终页面。这可以通过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>.

...

你可以显示结果,但没有维基百科的CSS样式可能会看起来很奇怪。
另外,请注意,如果您想要实际的JSON,您应该使用format=json而不是format=jsonfm

我想在webView中显示维基百科显示的关于o2+arena的所有信息。建议的URL没有显示任何内容:( - Krunal
我已经更新了我的答案,向您展示如何获取适用于webView的HTML。 - Mark A. Hershberger

2
如果您不想解析维基百科的api输出,为什么不呢?
http://en.wikipedia.org/w/index.php?search=O2+arena+london

您只需搜索由+分隔的单词即可。


最好打开相关应用程序而不是在浏览器中打开。 - Corbin Miller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接