今日の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
<?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のとこ手書きなんだろう。)
pearパッケージ版に関する告知
http://d.hatena.ne.jp/sasezaki/20080428#p1
で用意したDigginパッケージですが、
channelを「__uri」にするはずが、
pear.php.netのままにしてしまっていてました。気になる方は削除を。
(pear listで出ちゃう(>_<))
以後きをつけます。