PerlでYahoo!Web検索サービス:XMLの取得
ここでは、Yahoo! APIで提供されているWeb検索サービスをPerlで使う説明したいと思います。
WebSearchServiceからXMLを取得
Web検索サービスは、HTTPを使って特定のURLを呼び出すことで利用します。 そのURLを呼び出すと、XMLによる応答がHTTPで返って来るので、それを解析して利用します。 ここでは、Perlを使ってまずXMLを取得するところから説明したいと思います。
PerlのLWPを使うと簡単にHTTPからデータを取得できます。 以下にYahoo! Web Search ServiceからXMLを取得するPerlスクリプトのサンプルを示します。
#!/usr/bin/perl
use LWP::Simple;
$appid = "testimpl";
$query = "test";
$url = "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch?appid=$appid&query=$query";
$response = get($url);
print $response;
exit;
#!/usr/bin/perlの部分は環境に応じてPerlへのPATHを変更してください。 上記サンプルは単なるPerlスクリプトなので、UNIXのシェル上から実行、cygwinから実行、その他環境でPerlを実行、などの手段で試してみてください。
上記サンプルでは、「$appid = "testimpl";」という部分でアプリケーションIDを設定しています。 このアプリケーションIDは、「$url」にセットするために「$appid」という変数に代入しています。 "testimpl"の部分は、各自のアプリケーションIDに変更してください。
「$query = "test";」の部分は、検索キーを設定しています。 「$query」に代入される内容も「$url」にセットされます。
「$response = get($url);」の部分でHTTPの取得を行っています。 get($url)は、$urlに入っているURLに対してHTTP GETを行います。 上記サンプルでは、HTTP GETの結果を$responseという変数に代入しています。
最終的に、このサンプルでは$responseに入った内容をprintして終了しています。 $responseに入っているデータはYahoo! Web Search Serviceが回答しているXMLデータです。
ここでは、XMLデータを取得する方法を説明しました。 今度は、そのXMLを解析する方法を説明して行きたいと思います。