Wikipedia API(検索&パース)

検索条件

検索ワード

  前方一致 |  完全一致

フィルタ

Infobox 条件 lead文
タイトル 要素名 キーワード キーワード
or  and

出力

HTML |  XML

 | リセット

Wikipedia APIについて

Wikipediaのページタイトルを検索し、取得したページのWikiマークアップを解釈してXMLに変換して出力するプログラムです。

APIとして使うときは

http://ホスト名/wpsearch/index.php/?keywords=検索ワード&type=xml

とすると、前方一致検索が行われ、結果が複数ある場合は一覧が、結果が1つの場合はページの内容が、XMLで得られます。

完全一致検索をしたい場合は、パラメータにsearch=equalを加えます。

http://ホスト名/wpsearch/index.php/?keywords=検索ワード&type=xml&search=equal

複数の結果が返った場合は、一覧からリンクを取得して

http://ホスト名/wpsearch/index.php/?id=ページID&title=ページタイトル&type=xml

とアクセスすると、指定したページの内容がXMLで取得できます。


フィルタ機能の使い方

Wikipediaには、同じ名前のものがたくさん登録されています。
たとえば、映画「炎のランナー」を検索すると、「炎のランナー」「炎のランナー(ヴァンゲリス)」の2つが表示されます。
そこで、映画のテンプレートとして、よく使われている「Infobox Film」をInfoboxのタイトルに指定すると、映画の炎のランナーだけを取得できます。

また、映画「許されざる者」には1960年版と1992年版があります。もし、クリント・イーストウッドがアカデミー賞をとった1992年版だけを取得したいなら、Infobox Filmテンプレート内の「公開」の要素を利用します。
Ifoboxの要素名に「公開」、キーワードに「1992」とすれば、1992年版のデータだけを取得できます。

残念ながら、映画のすべてにInfobox Filmが付いているわけではありません。そこで、lead文(冒頭の記述)の中に含まれるキーワードでもフィルタリングできます。映画「クローズZERO」はInfobox Filmはありませんが、lead文のキーワードに「映画」と指定すれば、データを取得できます。

Infoboxとlead文の両方を必須とする場合は条件に「and」を、どちらか片方だけでよいなら「or」を指定してください。

フィルタ機能うち、タイトルと要素名は完全一致ですが、キーワードは部分一致となっています。
なお、「Infobox」、「lead文」などの用語は、Wikipediaの正式な用語ではなく、このWikipedia APIの説明において、便宜上付けたものです。


Wikipedia APIパラメーター一覧

注:日本語はUTF-8をURLエンコードしてください

パラメータ名 意味
keywords ページタイトル内を検索するキーワード keywords=ウイークエンド
search ページタイトル検索の前方一致 or 完全一致の指定 search=equal(前方一致:デフォルト)/search=equal(完全一致)
it_filter Infoboxのタイトル it_filter=Infobox Film(完全一致)
id_filter_name Infoboxの要素名(完全一致) id_filter_name=公開
id_filter_value Infoboxの要素内を検索するキーワード(部分一致) id_filter_name=1992
lead_filter lead文を検索するキーワード(部分一致) lead_filter=映画
condition Infoboxとlead文の条件 condition=or(どちらか片方:デフォルト)/condition=and(両方必須)
type 検索結果の出力方式 type=html(HTML:デフォルト)/type=xml(XML)

Wikipedia API(検索&パース) 設置方法解説ページ
API利用サンプル

©ずばぴたテック |  ライセンス:GPL 2.0