2016-10-24 71 views
2

我试图从Wikipedia:Unusual_articles得到所有的内容,我可以通过调用这个端点获得的表内容的列表:如何从维基百科API获取表格中的数据?

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

+0

我建议阅读API文档,并确定哪些API调用会为您提供文章内容。 – miken32

+0

你最好的办法是解析表格HTML。 API调用几乎是正确的,你只是使用了错误的属性。 – Tgr

+0

@Tgr我应该用什么道具来获取表格html? –

回答

2

您可以通过两个步骤使用链接到MediaWiki API与action=parse让每一个网页部分的内容。首先,你必须得从页面的所有部分具有:

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

从你看到的那款Americas具有指数的响应=T-2牛逼意味着transcluded页),它来自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 - 给出维基文本的解析部分文本。
+0

我可以从上面的api中获取部分详细信息。通过分段索引。 但它返回HTML文本。我只想得到纯文本。我怎么才能得到它 ? –