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


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