NAME
WebService::KakakuCom - Handle WebAPI of kakaku.com.
SYNOPSIS
use WebService::KakakuCom;
my $api = WebService::KakakuCom->new;
my @results = $api->search('VAIO');
print $_->ProductName, "\n" for @results;
$api->debug(1);
$api->ie('utf8'); # for icode of Jcode
my $rs = $api->search(
'VAIO',
{ CategoryGroup => 'Pc', SortOrder => 'daterank', PageNum => 2 }
);
for (@$rs) {
print $_->ProductID;
print $_->ProductName;
print $_->CategoryName;
print $_->MakerName;
print $_->ImageUrl;
print $_->ItemPageUrl;
print $_->BbsPageUrl;
print $_->ReviewPageUrl;
print $_->LowestPrice;
print $_->NumOfBbs;
print $_->ReviewRating;
}
my $pager = $rs->pager; # Data::Page
print $pager->total_entries;
print $pager->entries_on_this_page;
...
my $product = $api->product($ProductID);
print $product->ProductID, "\n";
...
DESCRIPTION
This module allows you to handle WebAPI of kakaku.com easily.
Kakaku.com (http://kakaku.com/) is a price comparison sites in Japan. You can search/retrieve arbitrary product informations via its own WebAPI. Please refer to http://apiblog.kakaku.com/ for details. (in Japanese)
FUNCTIONS
new()
Returns an instance of this module. You must create an instance before searching.
ua()
Returns an User-Agent instance for customizing an User-Agent string, timeout values, something like that.
search($keyword, \%options)
Returns search results as a result set. The result set contains WebService::KakakuCom::Product objects and it will be available as an array in list context or as a WebService::KakakuCom::ResultSet object in scalar context.
my $api = WebService::KakakuCom->new;
my @results = $api->search('Vaio');
my $rs = $api->search('Vaio');
A ResultSet object can also be used as an array and it has some special methods like pager()
.
for my $product (@$rs) {
...
}
my $pager = $rs->pager; # an instance of Data::Page
All the informations you want can be retrieve from Product objects in a result set.
for my $product (@results) {
print $_->ProductID;
print $_->ProductName;
print $_->CategoryName;
print $_->MakerName;
print $_->LowestPrice;
print $_->NumOfBbs;
print $_->ReviewRating;
# These values are wrapped in URI.
print $_->ImageUrl
print $_->ItemPageUrl;
print $_->BbsPageUrl;
print $_->ReviewPageUrl;
}
You can specify options of search query like PageNum / SortOrder to the second argument of this method as hash reference. See the official API documents about detail of those options.
my $rs = $api->search(
'Vaio',
{ PageNum => 1, SortOrder => 'popularityrank' }
);
product($ProductID)
Returns an object of product by ProductID. An retrieved object is a WebService::KakakuCom::Product same as used in search()
.
ie($icode)
In the API of kakaku.com, a character set of multi byte characters must be Shift-JIS. So this module convert querie's charcter set to Shift-JIS by using Jcode internally.
If there is no information about an input code, it will be guessed automatically but may be failed. It's better that you set your character set of queries with this method.
$icode
can be any encoding name that Encode understands.
debug($bool)
Turn on/off the debug switch. Currently it only dump the data contained in a result set.
WARNING
This module is in beta version. Object interface it provides may be changed later.
AUTHOR
Naoya Ito, <naoya at bloghackers.net>
SEE ALSO
http://apiblog.kakaku.com/KakakuItemSearchV1.0.html
http://apiblog.kakaku.com/KakakuItemInfoV1.0.html
COPYRIGHT & LICENSE
Copyright 2006 Naoya Ito, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.