LoginSignup
2
1

More than 5 years have passed since last update.

MediaWiki APIを使ってキーワードを他言語で取得してみる

Posted at

やりたいこと

人名等のキーワードを英語表記から日本語表記で取得しようと思います。
例えばサッカー選手の「Lionel Messi」を「リオネル・メッシ」に変換するという感じです。

前提知識

MediaWiki APIを使いますので、下記のyubessyさんが書いたMediaWiki APIに関する記事の内容を前提とします。
MediaWiki APIを使ってWikipediaの情報を取得

方法

MediaWiki APIで下記のように、メッシ選手の例でリクエストを送信します。

https://en.wikipedia.org/w/api.php?format=xml&action=query&titles=Lionel Messi&prop=langlinks&lllimit=50

リクエストを投げる際のポイントは以下です。
 ・ドメインは検索対象の文字(titlesパラメータ)に合ったものを設定します。
  ⇒ 今回は「Lionel Messi」なのでドメインを「en」にしています。
 ・propは「langlinks」を設定します。
 ・レスポンスの件数は「lllimit」に設定します。
  ⇒ 日本語は50番目くらいに出てくるので、今回は50にしています。

リクエストを投げると以下のように言語別の表記が、レスポンスとして取得できます。

<api>
 <continue llcontinue="2150841|kk" continue="||"/>
 <query>
 <pages>
 <page _idx="2150841" pageid="2150841" ns="0" title="Lionel Messi">
 <langlinks>
  <ll lang="af" xml:space="preserve">Lionel Messi</ll>
  <ll lang="ak" xml:space="preserve">Lionel Messi</ll>
  <ll lang="am" xml:space="preserve">ሊዮኔል ሜሲ</ll>
  <ll lang="an" xml:space="preserve">Leo Messi</ll>
  <ll lang="ar" xml:space="preserve">ليونيل ميسي</ll>
 </langlinks>
 </page>
 </pages>
 </query>
</api>

なお、言語のコードはISO 639-1が使用されています。
ISO 639-1コード一覧

その他参考

MediaWiki 操作 API の説明文書-ページの種類

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1