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: ソース修正。
この記事に言及しているこのブログ内の記事