Google Web API
GoogleのWebサービスは、SOAP(ソープ。元はSimple Object Access Protocolの略だが、現在ではW3Cが、何かの略でなく固有名詞と宣言しています)を使用しています。
Yomi-Searchをベースにしていたので、 Yomi-Search FAN!「Googleの検索結果をYomi-Searchのテンプレートで表示するには?」を参考にしました。
以下のような感じのコードを使いました。
・title=サイトのタイトル。
・url=サイトのURL。
・snippet=サイトの概要。
の3つの項目で、実際の利用例は、グアムの下の方の関連リンクのところ。
Yomi-Searchをベースにしていたので、 Yomi-Search FAN!「Googleの検索結果をYomi-Searchのテンプレートで表示するには?」を参考にしました。
以下のような感じのコードを使いました。
use Jcode;
use SOAP::Lite;
# Google Web API を利用して、Google から検索結果を得る。
my $google_key='[取得したGoogle Key.]';
my $google_wsdl = "./GoogleSearch.wsdl"; # WSDL指定.
# Start Google Web API.
my $google_search = SOAP::Lite->service("file:$google_wsdl");
# 検索文字列をUTF-8に。
my $query = '[検索したい語]';
$query = jcode($query)->utf8;
utf8::decode($query);
# Query Google(10件をリクエスト)
my $results = $google_search ->doGoogleSearch($google_key, $query, 0,
10, "false", "", "false", "", "UTF-8", "UTF-8");
foreach my $result (@{$results->{'resultElements'}}) {
# 検索結果をシフトJIS変換。
my $title = $result->{'title'};
my $snippet = $result->{'snippet'};
my $url = $result->{'URL'};
$title = jcode($title, 'utf8')->sjis;
$snippet = jcode($snippet, 'utf8')->sjis;
# 不要なタグを消してみる。
$title=~s/\n//g;
$title=~s/<b>//g;
$title=~s/<\/b>//g;
$snippet=~s/\n//g;
$snippet=~s/<b>//g;
$snippet=~s/<\/b>//g;
$snippet=~s/<br>//g;
$title = 'タイトル無し' if (!$title);
$snippet = '紹介文無し' if (!$snippet);
ここでいろいろ処理
}
利用したのは、・title=サイトのタイトル。
・url=サイトのURL。
・snippet=サイトの概要。
の3つの項目で、実際の利用例は、グアムの下の方の関連リンクのところ。
カテゴリー:Webサービス
