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

时间:2016-10-24 04:06:03

标签: api mediawiki wikipedia-api mediawiki-api

我试图从Wikipedia:Unusual_articles获取所有内容,并且我可以通过调用此终结点来获取表内容列表:

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下是带有链接和简短描述的表的列表,但有没有办法从API获取链接和简短描述?

table

1 个答案:

答案 0 :(得分:7)

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

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

根据回复,您看到Americas部分索引= 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=...

其中:

  • prop=wikitext - 提供已解析的原始部分wikitext。
  • prop=text - 提供wikitext的解析部分文本。