2016-04-06 17 views
1

私はウィキペディアAPIを使用して特定のページからインフォボックスを取得しています。 例はImperial College London です。私の問題は、私が得ているHESA student population|INSTID=0132の値です。私は学生人口の数字を取得することを望んでいましたが、代わりに上記のIDを取得しています。ページに存在するinfoboxの値を取得するにはどうすればよいですか?Wikipedia API infobox

また、wiki pageにチェックを入れると、2つの情報(メインとランキング)があります。どうすればそれらを得ることができますか?

+1

「[Wikipedia Infoboxからの情報の抽出方法](http://stackoverflow.com/questions/33862336/how-do-you-extract-information-from-a-wikipedia-infobox/33862337#33862337)を参照してください。 ) – Tgr

+0

はい私はそれを読んだ。ウィキテックスはまさに驚異的です。私はいくつかのnpmライブラリを使用しましたが、堅牢なものはありません値の一部が表示されません(例:私の質問で参照している値)。クラスでhtmlを返すAPIはまったく問題ありません。それでも問題はありますが、構文解析の中でいくつかの調整をすると、それらを克服することができます。この質問で、私が欠けていた機能があるかどうかを知りたかったのです。純粋なinfoboxを返すものはありませんが、新しいapiは速く、必要なすべての情報を持っています。 – alkis

+0

あなたがそれを読んだら確かに[DBPedia](http://dbpedia.org/page/Imperial_College_London)を見たことがありますか? – Tgr

答えて

1

代替語句REST APIを使用して、ウィキペディアのコンテンツにアクセスすることができます。あなたが要求する記事のためのよく構造化されたHTMLを取得するには:

https://en.wikipedia.org/api/rest_v1/page/html/Imperial_College_London

をHTMLはDOM Spec次のHTML/RDFaのコンテンツを生成Parsoidサービスによって生成されます。 Inboxはクラス `infoboxのhtml table要素になるので、ページ上のすべての受信ボックスを簡単に見つけることができます。

通常、受信トレイは複雑なテンプレートで作成されるため、テーブルHTMLを解析するほうが簡単かもしれません。

+0

こんにちは@Petr。応答していただきありがとうございます。まだこのベータ版のため、私はこのapiをまだ使用することはできません(それはとてもクリーンですが)。 https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvlimit=1&rvprop=content&rvparse=&titles=Imperial%20College%20Londonでも同じことができます。どちらが現在の/安定したAPIを使用して、すべてのスタイリングが存在するので、私は同じロジック(解析)を使用することができます。私はこれについて考えましたが、これを行うためのより良い/クリーナー/より速い方法があることを期待していました。 – alkis

+1

@alkis私はこのAPIの開発者ですので、 'ベータ'のステータスはあなたにとって問題ではないことを保証することができます。 '/ page/html'エンドポイントは非常に安定しており、ウィキメディアの内部と外部の両方の主要なクライアントによって使用されています。 VisualEditor、Androidアプリ、コンテンツ翻訳ツールなどの機能はこのAPIに依存しています。 – Petr

+0

それは素晴らしいニュースです。それも速いですか?それはかなり速いと思われる – alkis

関連する問題