Check out what Andrew is doing for Microformat parsing:
Now, there is a base-class
Microformatthat provides a structure for any sub-class to be created that specifies a Microformat that you want to parse.
It’s a great way to parse different microformats, and keep the code simple and DRY.
Andrew also fixed a bug in Scraper::Base, so grab a fresh copy from SVN or svn update. It will let you use the same technique to write reusable scrapers.