2 件 見つかりました。

SICP読書会に行ってきました。前回参加は[2006-09-06-2]。
今回は秋葉原拠点。会場提供ありがとうございました。


- 素人くさいSICP読書会
http://www.csus4.net/hiki/SICPReading/
http://www.csus4.net/hiki/SICPReading/?SICPReading029
■計算機プログラムの構造と解釈

![]()
![]()

どんな検索サービスにも言えることですが、
検索結果の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)
#!/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};
}
たつをの ChangeLog