PerlでYahoo!Web検索サービス:言語の指定
ここでは、言語を指定して検索を行う方法を説明したいと思います。 言語を指定しないで検索を行った場合のデフォルト値は「ja(日本語)」になります。
英語(en)を指定して検索
ここでは、Perlを使って英語コンテンツの検索を行いたいと思います。 下記サンプルのポイントは、リクエストURL内に「language=en」という文字列が入っている事です。
下記サンプルでは、HTTPの取得にPerlのLWPを使い、XMLの解析にはPerlのXMLを使っています。 以下にYahoo! Web Search ServiceからXMLを取得して解析するPerlスクリプトのサンプルを示します。
#!/usr/bin/perl
use LWP::Simple;
use XML::Simple;
$appid = "testimpl"; # 変更して下さい
$query = "test"; # 検索を行いたいキーワード
$lang = "en"; # 言語
$url = "http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch";
$url .= "?appid=$appid&query=$query&language=$lang";
$response = get($url);
$xml = new XML::Simple;
$yahoo_xml = $xml->XMLin($response);
$totalResults = $yahoo_xml->{totalResultsAvailable};
$resultsReturned = $yahoo_xml->{totalResultsReturned};
$firstResult = $yahoo_xml->{firstResultPosition};
print "Total Results Available : $totalResults\r\n";
print "Total Results Returned : $resultsReturned\r\n";
print "First Result Position : $firstResult\r\n";
exit;
上記サンプルでは、get()で取得したXMLを「$xml->XMLin($response)」で解析しています。 解析結果は「$yahoo_xml」に入っています。
上記サンプルでは、XML解析結果から3つの要素を取り出しています。 「$totalResults」には「検索内容に合致する結果の総数」を代入しています。 「$resultsReturned」には「今回のXMLで返される検索結果数」を代入しています。 「$firstResult」には「現在のページに表示されている検索結果は全体の何番目から開始するか」を代入しています。
上記サンプルプログラムの「$lang = "en";」の部分を他の言語に変更すると、検索する言語を変更できます。
利用可能な言語
jaやen以外で利用できる言語を以下に示します。
言語 | コード |
---|---|
アイスランド語 | is |
アラビア語 | ar |
イタリア語 | it |
インドネシア語 | id |
英語 | en |
エストニア語 | et |
オランダ語 | nl |
カタロニア語 | ca |
韓国語 | ko |
ギリシャ語 | el |
クロアチア語 | hr |
スウェーデン語 | sv |
スペイン語 | es |
スロバキア語 | sk |
スロベニア語 | sl |
セルビア語 | sr |
タイ語 | th |
チェコ語 | cs |
中国語(簡体字) | szh |
中国語(繁体字) | tzh |
デンマーク語 | da |
トルコ語 | tr |
ドイツ語 | de |
日本語 | ja |
ノルウェー語 | no |
ハンガリー語 | hu |
フィンランド語 | fi |
フランス語 | fr |
ブルガリア語 | bg |
ヘブライ語 | he |
ペルシャ語 | fa |
ポルトガル語 | pt |
ポーランド語 | pl |
ラトビア語 | lv |
リトアニア語 | lt |
ルーマニア語 | ro |
ロシア語 | ru |
Yahoo!検索 - サポートしている言語(2007/11/26)より。