2016-10-24 100 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文本。我只想得到純文本。我怎麼才能得到它 ? –