From: Aaron Patterson Date: 2008-09-18T13:27:15+09:00 Subject: Re: How can one get the Hpricot DOM document from Mechanize? On Sun, Sep 14, 2008 at 04:03:04AM +0900, Just Another Victim of the Ambient Morality wrote: > I was wondering if there were some way of getting the Hpricot DOM (for > lack of a better term) from a Mechanize page. For example: > > > agent = WWW:Mechanize.new > page = agent.get(http://www.website.com) > > # I am currently doing this > doc = Hpricot(page.body) > > # I would like to do this > doc = page.get_hpricot_dom > > > The idea is that since Mechanize apparently uses Hpricot and it's surely > using it to parse the HTML begotten from the agent.get method, it would be > nice if I didn't have to repeat that work. > Is there a way to get this Hpricot document? ...or am I just totally > wrong about how Mechanize uses Hpricot? You can get at the Hpricot document by using the "parser" accessor on WWW::Mechanize::Page. Page also responds to "search", "/", and "at", which just delegate to the Hpricot document. So you can just do: (agent.get('http://tenderlovemaking.com')/'tr').each do |tr| ... end -- Aaron Patterson http://tenderlovemaking.com/