今日のDiggin_Scraperチップス#1

Zend FrameworkとDiggin_Service_Wedata::getItems('AutoPagerize')とDiggin_Scraperで
複数ページにまたがるサイトを保存する。
http://coderepos.org/share/browser/lang/php/Scraper/demos/Diggin/autopagerizing_download.php
↑これを使うとURLを設定するだけで、次ページのリンクがあった時だけ、
リクエストを送ってページを保存します。

というか、scraperのデストラクトをちゃんとしてなかったのでループ中つかえねえというバグがあったのですがなおしたので、(いないと思うけど)Diggin_Scraper使ってる人は最新にしてください(今後も常に最新推奨ですが)。

関連:
WWW::Mechanize::AutoPager Web::Scraperで複数ページにまたがるデータを扱う
http://labs.gmo.jp/blog/ku/2008/02/wwwmechanizeautopagerwebscraper.html

今日のDiggin_Scraperチップス#2

TwitterにいるPHPのすごい人リストぶっこぬき

<?php
//require_once 'Diggin/Scraper.php';
//$scraper = new Diggin_Scraper();
//$scraper->process('//div[@class="post-content"]/ul/li/a', 'phper => ["TEXT", "Alnum"]')
//        ->scrape('http://www.1x1.jp/blog/2008/05/twitter_japanese_phper.html');
//var_dump($scraper->results['phper']);

//訂正↑Alnumじゃだめなので
function getusername($var)
{
    return trim(parse_url($var, PHP_URL_PATH), '/');
}
require_once 'Diggin/Scraper.php';
$scraper = new Diggin_Scraper();
$scraper->process('//div[@class="post-content"]/ul/li/a', 'phper => ["@href", "getusername"]')
        ->scrape('http://www.1x1.jp/blog/2008/05/twitter_japanese_phper.html');
var_dump($scraper->results['phper']);

array(38) {
  [0]=>
  string(4) "LIND"
  [1]=>
  string(6) "akiyan"
  [2]=>
  string(3) "bto"

関連:
http://twitter.g.hatena.ne.jp/etu_pirka/20080509

(´-`).。oO(なんでarrayのとこ手書きなんだろう。)