古い記事

ランダムジャンプ

新しい記事

Yahoo![2006-10-03-3]

Yahoo!RSS[2006-09-13-1]


RSS
API使




Yahoo!RSSAPI使


使 Web API 




Yahoo!RSSAPI使

Yahoo!RSSAPI使

http://blog-search.yahoo.co.jp/rss?p=%B8%A1%BA%F7%B2%F1%B5%C4

10



 Yahoo!5
 http://blog-search.yahoo.co.jp/




URL&n=10&so=&yuragi=off&b=2

n
b
 rss 
使

 
http://blog-search.yahoo.co.jp/rss?p=%B8%A1%BA%F7%B2%F1%B5%C4&n=10&b=3
http://blog-search.yahoo.co.jp/rss?p=%B8%A1%BA%F7%B2%F1%B5%C4&n=100







(num)(page)
 CGI 

 EUC-JP 
Yahoo!RSSQA[2006-09-14-1]



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

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

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

my $url = "http://blog-search.yahoo.co.jp/rss?p=$key&n=$num&b=$page";
my $r = get_bresults($url);
my $template = join("", <DATA>);
my $t = HTML::Template->new(scalarref => \$template,
                            associate => $q,
                            die_on_bad_params => 0);
$t->param(results => $r);
$t->param(key => decode('UTF-8', $q->param('key')));

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

sub get_bresults {
    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>Yahoo! Blog Search (RSS)</title></head><body>
<h1>Yahoo! Blog Search (RSS)</h1>
<form method="get">
<input type="text" name="key" value="<TMPL_VAR name=key>" size="20">
num:<input type="text" name="num" value="<TMPL_VAR name=num>" size="3">
page:<input type="text" name="page" value="<TMPL_VAR name=page>" size="2">
<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></h3>
<p><TMPL_VAR name=description></p>
</TMPL_LOOP>
</body></html>


Hack 

Web

(
 http://chalow.net/misc/yahoohacks-samp/hack_blogsearch.cgi)

Hack  Hack 

 site:http...
(Yahoo!
 [2006-10-03-3])


CGI

my $url = "http://blog-search.yahoo.co.jp/rss?p=$key&n=$num&b=$page";



my $url = "http://blog-search.yahoo.co.jp/rss?"
     ."p=$key+site:http://d.hatena.ne.jp/&n=$num&b=$page";




参考ページ:
- Yahoo!デベロッパーネットワーク (YDN)
  http://developer.yahoo.co.jp/

関連書籍:
- Yahoo! Hacks