たけるのプログラミング

作ったものとか、気ままにアップします。

【PHP】MediaWiki APIを使って情報を取得してみた!!!

MediaWikiAPIを使ってみました。

このAPIを使うことによりWikipediaのデータへアクセスすることができます。

さっそく、使ってみました。

実行結果

自分の好きなNBA選手「カーメロアンソニー」のWikipediaにおける最初の節の文章を取得しました。
f:id:takeru232423:20210908003141p:plain

ソースコード

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<?php
$title = 'カーメロ・アンソニー';
$url = "https://ja.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1&explaintext=1&format=json&titles=".urlencode($title);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($curl);
curl_close();

$response_array = json_decode($response, true);//jsonデコードする、配列にする

$page_title = $response_array['query']['pages']['485246']['title'];
$explain_text = $response_array['query']['pages']['485246']['extract'];
?>

<body>
    <h1><?php echo $page_title ?></h1>
    <p><?php echo $explain_text ?></p>

</body>

</html>

解説

詳しい情報はこちら↓
ja.wikipedia.org

APIから情報を取得するためのエンドポイント

https://ja.wikipedia.org/w/api.php

パラメーター actionにqueryを指定し、MediaWikiからデータを取得する

https://ja.wikipedia.org/w/api.php?action=query

パラメーター propにextractsを指定し、指定されたページのテキストまたはHTMLを取得

https://ja.wikipedia.org/w/api.php?action=query&prop=extracts

パラメーター exintroに何かを指定して、最初の節の内容を取得する

https://ja.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1
exintroに何かが指定されていればtrueとして扱われます。上記ではexintro=1としましたが、exintro=2でも構いません。

パラメーター explaintextに何かを指定して、プレーンテキストとして抽出する

https://ja.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1&explaintext=1

パラメーター formatにjsonを指定して、データをjson形式で出力する

https://ja.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1&explaintext=1&format=json

json出力結果

f:id:takeru232423:20210908003042p:plain

感想

今回MediaWiki APIを使ってみましたが、このAPIは自作でWebアプリを作る際に使いやすいのではないかと思いました!

Wikipediaって本当に色々なジャンルの情報がありますしね!

記事に関して、ご指摘等ございましたらコメントいただけるとありがたいです。