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)より。
