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を解析する方法を説明して行きたいと思います。


YouTubeで技術解説やってます!