scrapeのとこの改訂のお知らせ
http://diggin.googlecode.com/svn/trunk/library/Diggin/Scraper/
svnのコミット見れば分かるし、Digginライブラリ自体誰も使ってなさそうのでどうでも良いかもしれませんが、
現在のデフォルト(xmlobjectで読み込んでxpathで解析)の場合、
HTMLScraping Classを改造した以下のアダプター使うようにしましたのでお見知りおきください。*1
http://diggin.musicrider.com/libs/Diggin/Scraper/Adapter/Htmlscraping.phps
setStrategy("Diggin_Scraper_Strategy_Regex")などの場合は、整形しないRawアダプターで読み込んでるので関係ないです。
webscraperにはほど遠いですが、以下使い方。
<?php require_once 'Diggin/Scraper/Client.php'; $scraper = new Diggin_Scraper_Client("http://events.php.gr.jp/event.php/event_show/37"); $scraper->setStrategy("Diggin_Scraper_Strategy_Regex"); $scraper->process("#<li>募集人数:(\d{1,2})</li>#m", "capa") ->process("#<li>残り:(\d{1,2})#m", "remain") ->scrape(); print_r($scraper->scrapes["capa"][1][0]); echo "\n"; print_r($scraper->scrapes["remain"][1][0]);
- 認証がかかったりソースの取得
<?php require_once 'Zend/Http/Client.php'; $client = new Zend_Http_Client(); $client->setCookieJar(); $client->setUri('http://www.hatena.ne.jp/login'); $client->setParameterPost('name', 'dankogai'); $client->setParameterPost('password', 'kogaidan'); $client->request('POST'); require_once 'Diggin/Scraper/Client.php'; $scraper = new Diggin_Scraper_Client(); $scraper->setHttpClient($client); $scraper->process('//title', 'siteTitle') ->process('//div[@id="referer-list"]//a', 'referer') ->scrape('http://d.hatena.ne.jp/sasezaki/edit?date=20080216'); print_r($scraper->scrapes);