hpricot and regexp?

F

Feng Tien

I'm trying to grab the "cache date" off of the google search.

using Mechanize (and built in hpricot)


agent = WWW::Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get("http://www.google.com/")
search_form = page.forms.with.name("f").first
search_form.q = "Hello"
search_results = agent.submit(search_form)
cache_date = agent.click search_results.links.text('Cached')

date = cache_date.search('table table > td').inner_html


How do i grab the date like on this page:
http://209.85.173.104/search?q=cach...s=org.mozilla:en-US:official&client=firefox-a

the part that's right after "as retrieved on" (the date)
Is there a built in hpricot method that can search by rexep?
or will I have to use something like gsub?
 
F

Feng Tien

Feng said:
I'm trying to grab the "cache date" off of the google search.

using Mechanize (and built in hpricot)


agent = WWW::Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get("http://www.google.com/")
search_form = page.forms.with.name("f").first
search_form.q = "Hello"
search_results = agent.submit(search_form)
cache_date = agent.click search_results.links.text('Cached')

date = cache_date.search('table table > td').inner_html


How do i grab the date like on this page:
http://209.85.173.104/search?q=cach...s=org.mozilla:en-US:official&client=firefox-a

the part that's right after "as retrieved on" (the date)
Is there a built in hpricot method that can search by rexep?
or will I have to use something like gsub?


oops, I mean, grep.

oh, i got it down to this:

date = cache_date.search('table table > td').inner_text.grep(/retrieved
on (.+)./)


which outputs:["This is G o o g l e's cache of http://www.hello.com/ as
retrieved on May 11, 2008 01:09:29 GMT.\n"]

How do I get rid of everything before the date?
 
F

Feng Tien

Feng said:
Feng said:
I'm trying to grab the "cache date" off of the google search.

using Mechanize (and built in hpricot)


agent = WWW::Mechanize.new
agent.user_agent_alias = 'Mac Safari'
page = agent.get("http://www.google.com/")
search_form = page.forms.with.name("f").first
search_form.q = "Hello"
search_results = agent.submit(search_form)
cache_date = agent.click search_results.links.text('Cached')

date = cache_date.search('table table > td').inner_html


How do i grab the date like on this page:
http://209.85.173.104/search?q=cach...s=org.mozilla:en-US:official&client=firefox-a

the part that's right after "as retrieved on" (the date)
Is there a built in hpricot method that can search by rexep?
or will I have to use something like gsub?


oops, I mean, grep.

oh, i got it down to this:

date = cache_date.search('table table > td').inner_text.grep(/retrieved
on (.+)./)


which outputs:["This is G o o g l e's cache of http://www.hello.com/ as
retrieved on May 11, 2008 01:09:29 GMT.\n"]

How do I get rid of everything before the date?


Now I have this:

date = cache_date.search('table table > td').inner_text.grep(/retrieved
on (.+)./).to_s.gsub(/.+as retrieved on /,"").gsub(/.\n/,"")

which gives me exactly what i need. is there a better way to doing this?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,773
Messages
2,569,594
Members
45,123
Latest member
Layne6498
Top