「はてなスター」チェックにチャレンジ

http://perl-mongers.org/2008/07/post_4.html

<?php
$username = 'XXXXXXXXXXXXXXXXXXXXX';
$password = 'PerlDaisuki';

require_once 'Diggin/Scraper.php';
require_once 'Zend/Http/Client.php';
require_once 'Zend/Json.php';

$client = new Zend_Http_Client();
$client->setCookieJar();

$client->setUri('http://www.hatena.ne.jp/login');
$client->setParameterPost('name', $username);
$client->setParameterPost('password', $password);
$client->request('POST');

$s = new scraper();
$s->process('a', 'title => "TEXT"', 'link => "@href"');

$scraper = new Diggin_Scraper();
$scraper->setHttpClient($client);
$scraper->changeStrategy('Diggin_Scraper_Strategy_Selector')
        ->process('span.entry-title', array('stars[]' => $s))
        ->scrape("http://s.hatena.ne.jp/$username/report");

foreach ($scraper->stars as $star) {
?>
<a href="<?php echo $star['link'];?>"></a><?php echo $star['title']; ?></a><br>
<?php    
    $link = str_replace('#', rawurlencode('#'), $star['link']);
    $client = new Zend_Http_Client('http://s.hatena.ne.jp/entries.json?uri='.$link);
    $decode = Zend_Json::decode($client->request()->getBody());
    $entry = current($decode['entries']);
    foreach ($entry['stars'] as $es) {
        if(is_array($es)) echo $es['name']; echo " ";
        if(!is_array($es)) echo $es; echo " ";
    }
    echo "<hr>";
}
?>

はてなスター設置しなければチェックする手間が省けて経済的