Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

やりたいこと

人名等のキーワードを英語表記から日本語表記で取得しようと思います。
例えばサッカー選手の「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 の説明文書-ページの種類

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした