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.