2016-10-24 13 views
2

私はWikipedia:Unusual_articlesからすべてのコンテンツを取得しようとしていると私はこのエンドポイントを呼び出すことで、テーブルのコンテンツのリストを取得することができるよ:Wikipedia 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

次の2つのステップでaction=parseでMediaWikiのAPIを使って、すべてのページセクションのコンテンツを取得することができます。まず、あなたがページからすべてのセクションを取得する必要があります:あなたはセクションAmericas率を有していることがわかり応答から

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

=T-2Tは、トランスクルードページを意味する)、それがfromtitleから来ている=Wikipedia:Unusual_articles/Places_and_infrastructure 。それが解析されたウィキテキスト元のセクションを与える -

  • prop=wikitextは:

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

    :今、私たちは、とのセクションの内容を取得するために、これらのインデックスfromtitleを使用しています。

  • prop=text - wikitextの解析されたセクションのテキストを返します。
+0

上記のapiからセクションの詳細を取得できます。セクションインデックスを渡します。 しかし、それはHTMLテキストを返します。私はプレーンテキストだけを取得したい。どうすれば入手できますか? –

関連する問題