【PHP】MediaWiki APIを使って情報を取得してみた!!!
このAPIを使うことによりWikipediaのデータへアクセスすることができます。
さっそく、使ってみました。
ソースコード
<!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から情報を取得するためのエンドポイント
パラメーター actionにqueryを指定し、MediaWikiからデータを取得する
パラメーター 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
パラメーター titlesに取得したいページのタイトルを指定する
json出力結果