如何从维基百科API中获取table中的数据?

How to obtain data in a table from Wikipedia API?

我正在尝试从 Wikipedia:Unusual_articles 获取所有内容,并且我能够通过调用此端点获取 table 内容的列表:

https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=sections&page=Wikipedia:Unusual_articles

我得到的数据看起来像这样:

{
    title: "Wikipedia:Unusual articles",
    pageid: 154126,
    sections: [
        {
            toclevel: 1,
            level: "2",
            line: "Places and infrastructure",
            number: "1",
            index: "T-1",
            fromtitle: "Wikipedia:Unusual_articles/Places_and_infrastructure",
            byteoffset: null,
            anchor: "Places_and_infrastructure"
        },
        {
            toclevel: 2,
            level: "3",
            line: "Americas",
            number: "1.1",
            index: "T-2",
            fromtitle: "Wikipedia:Unusual_articles/Places_and_infrastructure",
            byteoffset: null,
            anchor: "Americas"
        },
...

但是我无法获取特定部分的内容。例如,在 Americas 下是 table 的列表,带有 link 和简短描述,但是有没有办法从 [= 获取 link 和简短描述25=]?

您可以使用 MediaWiki API 和 action=parse 分两步获取每个页面部分的内容。首先,您必须从页面获取所有部分:

https://en.wikipedia.org/w/api.php?action=parse&prop=sections&page=Wikipedia:Unusual_articles

从响应中您看到 Americas 部分有 index=T-2T 表示嵌入的页面) 它来自 fromtitle=Wikipedia:Unusual_articles/Places_and_infrastructure。现在我们使用这些 indexfromtitle 来获取部分内容:

https://en.wikipedia.org/w/api.php?action=parse&page=Wikipedia:Unusual_articles/Places_and_infrastructure&section=2&prop=...

其中:

  • prop=wikitext - 给出被解析的原始部分维基文本。
  • prop=text - 给出维基文本的解析部分文本。