Always used anemone with great results http://anemone.rubyforge.org/
Seems like it's not being actively developed, but again, never had a problem.
Edit: realize this is focused on single page scraping with data extraction. Could use them nicely together in fact.