使用'puts'从外部域获取信息

时间:2012-10-14 23:57:09

标签: ruby-on-rails ruby puts

我刚刚开始在轨道上使用ruby,我正在徘徊是否可以使用puts函数从外部页面上的页面获取div的内容。

类似于puts "http://www.example.com #about"

会是这样的吗?或者你必须得到整个页面,然后把你想要的部分?

另外,如果“example.com”#about div上的内容不断更改会不断更新其输出,还是每次刷新页面时都会运行脚本?

2 个答案:

答案 0 :(得分:1)

open-uri库(用于获取页面)和Nokogiri gem(用于解析和检索特定内容)可以为此提供帮助。

require 'open-uri'
require 'nokogiri'

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

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

答案 1 :(得分:1)

puts不会那样工作。 Ruby使得解析HTML相当容易。查看Nokogirl库,您可以使用xpath查询来获取要打印的div。如果div发生变化,我相信你需要重新打开文件,但我对此并不乐观 - 你可以轻松测试它(或者这里有人可以确认或拒绝该声明)。