Yahoo!商品検索のRSSで商品検索サイトを作る
2006-09-13-1
[YahooHacks]
どんな検索サービスにも言えることですが、
検索結果のRSSが提供されているということは、
そのまま検索APIとして使えるということを意味しています。
てなわけで、今回の YahooHacks は、
Yahoo!商品検索(http://psearch.yahoo.co.jp/)のRSSを用いた
検索サイトの作り方です。
なお、「use CGI qw/-no_xhtml/;」としているのはバッドノウハウです。
バージョンの違いもあるかもだけど、start_html() で散々嫌な目に
あったので。
今回は、CGI.pm で昔ながらの方法を使って書いてみたのですが、
前述のバッドノウハウも含め、なんか疲れますね。普段はテンプレートを
使っています。そういうサンプルも今後載せていきます。
(一時的にデモを置いておきます。そのうち消えます。ご了承ください。
http://chalow.net/misc/yahoohacks-samp/hack_psearch.cgi)
■■■Yahoo!商品検索のRSSで商品検索サイトを作る
Yahoo!商品検索(http://psearch.yahoo.co.jp/)では、
キーワード検索結果がRSSで提供されています。
RSSのURLの構成は以下のようになっています。
パラメタ p でエンコードしたUTF-8のキーワードを渡します。
http://psearch.yahoo.co.jp/search?p=[キーワード]&ei=UTF-8\
&tbid=02e89d655a5c&rss=1
これを用いて商品検索サイトを作ってみました。
■コード
Yahoo!商品検索のRSSを用い商品検索を行うCGIです。
■Hack の実行
そのままWebサーバに置けば動作するはずです。
検索実行例を下図に示します。

参考ページ:
- Yahoo!商品検索
http://psearch.yahoo.co.jp/
- Yahoo!デベロッパーネットワーク - RSS配信
http://developer.yahoo.co.jp/rss/
- [を] Yahoo!知恵袋の検索結果RSSでQA検索サイトを作る[2006-09-14-1]
関連書籍:
- Yahoo! Hacks
- まるごとPerl! Vol.1
追記071021: ソース修正。
検索結果のRSSが提供されているということは、
そのまま検索APIとして使えるということを意味しています。
てなわけで、今回の YahooHacks は、
Yahoo!商品検索(http://psearch.yahoo.co.jp/)のRSSを用いた
検索サイトの作り方です。
なお、「use CGI qw/-no_xhtml/;」としているのはバッドノウハウです。
バージョンの違いもあるかもだけど、start_html() で散々嫌な目に
あったので。
今回は、CGI.pm で昔ながらの方法を使って書いてみたのですが、
前述のバッドノウハウも含め、なんか疲れますね。普段はテンプレートを
使っています。そういうサンプルも今後載せていきます。
(一時的にデモを置いておきます。そのうち消えます。ご了承ください。
http://chalow.net/misc/yahoohacks-samp/hack_psearch.cgi)
使用している Web API の提供が終了となったため、現在動作しません。ご了承ください。
■■■Yahoo!商品検索のRSSで商品検索サイトを作る
Yahoo!商品検索(http://psearch.yahoo.co.jp/)では、
キーワード検索結果がRSSで提供されています。
RSSのURLの構成は以下のようになっています。
パラメタ p でエンコードしたUTF-8のキーワードを渡します。
http://psearch.yahoo.co.jp/search?p=[キーワード]&ei=UTF-8\
&tbid=02e89d655a5c&rss=1
これを用いて商品検索サイトを作ってみました。
■コード
Yahoo!商品検索のRSSを用い商品検索を行うCGIです。
#!/usr/bin/perl -T
use strict;
use warnings;
use Encode;
use CGI qw/-no_xhtml/;
use LWP::Simple;
use XML::Simple;
use URI::Escape;
my $q = new CGI;
my $key = $q->param('key') || "";
my $ekey = URI::Escape::uri_escape($key);
print $q->header(-charset => 'UTF-8'),
$q->start_html(-title => 'psearch', -lang => 'JP'),
$q->h1('psearch (RSS)'),
$q->start_form(-method => 'GET'),
$q->textfield(-name => 'key', -size => 20),
$q->submit(-value => 'search'),
$q->end_form(),
$q->h2('Search Results');
my $url =
"http://psearch.yahoo.co.jp/rss?p=$ekey&ei=UTF-8&rss=1";
my $r = get_presults($url);
foreach (@$r) {
print encode('UTF-8',
$q->h3($q->a({href => $_->{link}},
$_->{title})).
$q->p($_->{description})), "\n";
}
print $q->end_html(), "\n";
sub get_presults {
my ($url) = @_;
my $rss = get($url);
my $xmlsimple = XML::Simple->new(ForceArray => [ 'item' ]);
my $xml = $xmlsimple->XMLin($rss);
return $xml->{channel}->{item};
}
■Hack の実行
そのままWebサーバに置けば動作するはずです。
検索実行例を下図に示します。

参考ページ:
- Yahoo!商品検索
http://psearch.yahoo.co.jp/
- Yahoo!デベロッパーネットワーク - RSS配信
http://developer.yahoo.co.jp/rss/
- [を] Yahoo!知恵袋の検索結果RSSでQA検索サイトを作る[2006-09-14-1]
関連書籍:
- Yahoo! Hacks
- まるごとPerl! Vol.1
追記071021: ソース修正。
この記事に言及しているこのブログ内の記事
