たつをの ChangeLog : 2006-09-14

今回の YahooHacks は、
Yahoo!知恵袋(http://chiebukuro.yahoo.co.jp/)の検索結果RSSを用いた
QA検索サイトの作り方です。

前回の「Yahoo!商品検索」のハック[2006-09-13-1]とやっていることは
同じです。今回は、CGI.pm のタグ生成メソッドは使わずに、
テンプレートエンジン HTML::Template を使いました。

(一時的にデモを置いておきます。そのうち消えます。ご了承ください。
http://chalow.net/misc/yahoohacks-samp/hack_csearch.cgi)

使用している Web API の提供が終了となったため、現在動作しません。ご了承ください。



■■■Yahoo!知恵袋の検索結果RSSでQA検索サイトを作る

Yahoo!知恵袋(http://chiebukuro.yahoo.co.jp/)では、
キーワード検索結果がRSSで提供されています。
RSSのURLの構成は以下のようになっています。
パラメタ str でエンコードした EUC-JP のキーワードを渡します。

http://search.chiebukuro.yahoo.co.jp/search/search.php?
str=
[キーワード]&rss=1

これを用いてQA検索サイトを作ってみました。

■コード

Yahoo!知恵袋の検索結果RSSを用いQA検索を行うCGIです。

#!/usr/bin/perl -T
use strict;
use warnings;
use Encode;
use CGI;
use LWP::Simple;
use XML::Simple;
use HTML::Template;

my $q = new CGI;
my $key = $q->param('key') || "";

Encode::from_to($key, "utf8", "euc-jp");
$key =~ s/([^0-9A-Za-z_])/'%'.unpack('H2',$1)/ge;
$key =~ s/ /+/g;

my $url
     = "http://search.chiebukuro.yahoo.co.jp/search/search.php?p=$key&rss=1";
my $r = get_cresults($url);
my $template = join("", <DATA>);
my $t = HTML::Template->new(scalarref => \$template,
                            associate => $q,
                            die_on_bad_params => 0);
$t->param(results => $r);

print $q->header(-charset => 'UTF-8'), $t->output();

sub get_cresults {
    my ($url) = @_;
    my $rss = get($url);
    my $xmlsimple = XML::Simple->new();
    my $xml = $xmlsimple->XMLin($rss);
    if (ref($xml->{channel}->{item}) eq "ARRAY") {
        return $xml->{channel}->{item};
    } else {
        return [$xml->{channel}->{item}];
    }
    return [];
}

__DATA__
<html lang="ja"><head><title>search.chiebukuro (RSS)</title></head><body>
<h1>search.chiebukuro (RSS)</h1>
<form method="get">
<input type="text" name="key" value="<TMPL_VAR name=key>" size="20">
<input type="submit" value="search">
</form>
<h2>Search Results</h2>
<TMPL_LOOP name=results>
<h3><a href="<TMPL_VAR name=link>"><TMPL_VAR name=title></a><br>
<TMPL_VAR name=category></h3><p><TMPL_VAR name=description></p>
</TMPL_LOOP>
</body></html>

■Hack の実行

そのままWebサーバに置けば動作するはずです。
検索実行例を下図に示します。

画像



参考ページ:
- Yahoo!知恵袋
  http://chiebukuro.yahoo.co.jp/
- Yahoo!デベロッパーネットワーク - RSS配信
  http://developer.yahoo.co.jp/rss/
- [を] Yahoo!商品検索のRSSで商品検索サイトを作る[2006-09-13-1]

関連書籍:
Yahoo! Hacks
みんなの知恵袋

こんなキャッチーなタイトルの本が出るそうです。

森健 / グーグル・アマゾン化する社会


「グーグル・アマゾン化」、つまり「グーアマ化」ですね。

2年前に、バッドノウハウカンファレンスで発表した「グーアマ効果」との関係はいかに!?

「グーアマ効果」については下記に詳細資料があるので参照されたし。
- [を] バッドノウハウカンファレンス[2004-05-14-3]
この記事に言及しているこのブログ内の記事

『内側から見た富士通「成果主義」の崩壊』の著者、城繁幸氏による新刊が新書で出るそうです。読まねば。

城繁幸 / 若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来


なお、『内側から見た富士通「成果主義」の崩壊』の詳細な読書メモはこちら↓。必読!!!
- 内側から見た富士通「成果主義」の崩壊、読書メモ蔵出し[2006-05-04-2]
この記事に言及しているこのブログ内の記事

あの「コンピュータの名著・古典100冊」が改定新版となって9/22発売だって。 → http://home.impress.co.jp/reference/2304.htm

改訂新版 コンピュータの名著・古典100冊


あと、「Web担当者 現場のノウハウ」[2006-07-29-2][2006-08-04-1]の第二号も出ますね。これは9/16。

Web担当者 現場のノウハウ Vol.2


それから、ケビン・ミトニックの「ハッカーズ」。
PDFで先行公開とクチコミコンテスト。とりあえずPDFを読んでみるかな。
- 発売前先行公開(PDF版)+この話題書を「あなたのブログでオススメしてみませんか」コンテスト
http://home.impress.co.jp/hackers/

ケビン・ミトニック / ハッカーズ


たつをの ChangeLog
Powered by chalow