维基百科API - 获取随机页面

时间:2015-11-09 17:15:08

标签: json wikipedia wikipedia-api

我正在尝试使用维基百科的一组随机页面获取JSON结果,包括其标题,内容和图像。

我玩过他们的API沙箱,到目前为止,我得到的最好的是:

https://en.wikipedia.org/w/api.php?action=query&list=random&format=json&rnnamespace=0&rnlimit=10

但这仅包括十个随机页面的名称空间,id和标题。我想获得内容和图像。

有谁知道怎么做?

或者我可以使用单个随机页面的标题,内容和图像网址。 我得到的最好的是:

https://en.wikipedia.org/w/api.php?action=query&generator=random&format=json

2 个答案:

答案 0 :(得分:15)

你很亲密。 generator=random是正确的方法。然后,您可以使用各种prop值来获取所需的信息:

  • 始终包含页面标题。
  • 要获取文字,请使用prop=revisonsrvprop=content
  • 要获取页面上使用的所有图像,请使用prop=images

    请注意,这通常会包含您可能不感兴趣的图片,例如图标和标记。要解决此问题,您可以尝试使用prop=pageimages,但它似乎并不总是有效。或者您可以尝试使用它们。

因此,最终查询可能如下所示:

https://en.wikipedia.org/w/api.php?format=json&action=query&generator=random&grnnamespace=0&prop=revisions|images&rvprop=content&grnlimit=10

答案 1 :(得分:0)

如果您想使用他们的REST API,

class Tile {
    public int value;
    public Boolean collided;

    public Tile(int value) {
        this.value = value;
        collided = false;
    }

    public Tile attemptMerge(Tile target) {
        if (target.value == value) {
            Tile t = new Tile(value * 2);
            t.collided = true;
            return t;
        } else {
            return null;
        }
    }

    public void reset() {
        value = 0;
        collided = false;
    }
}

Documentation