Question

ive just started with ruby on rails the other day and i was wandering is it possible to using the puts function to get the content of a div from a page on an external page.

something like puts "http://www.example.com #about"

would something like this work ? or would you have to get the entire page and then puts that section that you wanted ?

additionaly if the content on the "example.com" #about div is constantly changing would puts constantly update its output or would it only run the script each time the page is refreshed ?

Was it helpful?

Solution

The open-uri library (for fetching the page) and the Nokogiri gem (for parsing and retrieving specific content) can assist with this.

require 'open-uri'
require 'nokogiri'

doc = Nokogiri::HTML(open('http://www.example.com/'))

puts doc.at('#about').text

OTHER TIPS

puts will not work that way. Ruby makes parsing HTML fairly easy though. Take a look at the Nokogirl library, and you can use xpath queries to get to the div you want to print out. I believe you would need to reopen the file if the div changes, but I'm not positive about that - you can easily test it (or someone here can confirm or reject that statement).

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top