如何从Wikipedia API获取表格中的数据?

Joh*_*Lim 7 api mediawiki wikipedia-api mediawiki-api

我正在尝试从维基百科获取所有内容:Unusual_articles,我可以通过调用此端点来获取表内容列表:

https://en.wikipedia.org/w/api.php?action=parse&format=json&prop=sections&page=Wikipedia:Unusual_articles
Run Code Online (Sandbox Code Playgroud)

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

{
    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"
        },
...
Run Code Online (Sandbox Code Playgroud)

但是我无法获得特定部分的内容.例如,under Americas是带有链接和简短描述的表的列表,但有没有办法从API获取链接和简短描述?

表

Ter*_*nja 10

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

https://en.wikipedia.org/w/api.php?action=parse&prop=sections&page=Wikipedia:Unusual_articles
Run Code Online (Sandbox Code Playgroud)

从响应中你看到该部分Americasindex =T-2(T表示被转换的页面),它来自fromtitle =Wikipedia:Unusual_articles/Places_and_infrastructure.现在我们使用这些索引fromtitle来获取该部分的内容:

https://en.wikipedia.org/w/api.php?action=parse&page=Wikipedia:Unusual_articles/Places_and_infrastructure&section=2&prop=...
Run Code Online (Sandbox Code Playgroud)

哪里:

  • prop=wikitext - 给出解析的原始部分wikitext.
  • prop=text - 给出wikitext的解析部分文本.