WebService::Google::Suggest

DESCRIPTION

Google Suggestを強引にAPIとして利用できる。キーワードを渡すと結果のハッシュが帰ってくる。

SYNOPSYS

use strict;
use warnings;
use Perl6::Say;

use WebService::Google::Suggest;

my $suggest = WebService::Google::Suggest->new;

# 日本語Googleを利用する
$WebService::Google::Suggest::CompleteURL
    = "http://www.google.com/complete/search?hl=ja&js=true&qu=";

my @suggestions = $suggest->complete(shift);
for my $suggestion (@suggestions) {
    say "$suggestion->{query}: $suggestion->{results} results";
}

実行結果

$ perl webservice_google_suggest.pl perl
perl: 0 results
perl 正規表現: 0 results
perl split: 0 results
perl 配列: 0 results
perl 入門: 0 results
perl open: 0 results
perl cgi: 0 results
perl 置換: 0 results
perl foreach: 0 results
perl リファレンス: 0 results
$ perl webservice_google_suggest.pl lucky
lucky star: 0 results
lucky: 0 results
lucky soul: 0 results
lucky☆star: 0 results
lucky star torrent: 0 results
lucky strike: 0 results
lucky channel: 0 results
luckystar: 0 results
lucky☆star ravish romance: 0 results
lucky13: 0 results

MEMO

日本語版Googleを利用できるようにプチハックしたらresultsの数がおかしくなりました。http://www.google.com/complete/search?hl=ja&js=true&qu=luckyの返してるjsが

window.google.ac.sendRPCDone(frameElement, "lucky", new Array("lucky star", "lucky", "lucky soul", "lucky☆star", "lucky star torrent", "lucky strike", "lucky channel", "luckystar", "lucky☆star ravish romance", "lucky13"), new Array("18,500,000 結果", "131,000,000 結果", "3,170,000 結果", "19,200,000 結果", "958,000 結果", "1,910,000 結果", "3,360,000 結果", "774,000 結果", "15,900 結果", "220,000 結果"), new Array(""));

とかで、日本語混じってるからだな。