1

可能重复:
ruby 中的简单解析

我正在尝试验证网站中的标题,经过反复试验,我发现这可以通过使用 nokogiri 和 rest-client 在 ruby​​ 中完成

 require 'nokogiri'
 require 'rest-client'

 page = Nokogiri::HTML(RestClient.get("http:/#{user.username}.domain.com/"))   
 simian = page.at_css("title").text 
     if simian == "Welcome to"
       puts "default monkey" 
   else 
   puts "website updated"       
    end

不幸的是,对于大量网站来说,这似乎并不总是有效,因为它在 /admin/users/list 500 Internal Server Error 处返回 RestClient::InternalServerError

我想知道是否有任何选项可以通过简单地使用 mycurl = %x(curl http://....... .) 来实现相同的效果,通过解析标题而不使用它是一种有效的方法任何宝石或 curl 选项可以直接与 nokogiri 一起使用吗?谢谢

4

2 回答 2

4

在阅读了您的问题后,不确定您是否已经设置了这两个宝石,这是另一种可能证明更简单的方法。

require 'open-uri'

url="http://google.com"
source = open(url).read
source[/<title>(.*)<\/title>, 1]
于 2012-09-07T19:35:52.573 回答
1

这有两个部分。一个是获取页面,另一个是解析。对于获取,您并不需要rest-clientgem,只要open-uri从标准库中就可以了。Nokogiri 进行解析,这不太可能是您的问题。尝试这个:

require 'open-uri'
require 'nokogiri'

page = Nokogiri::HTML(open('http://example.com/'))
puts page.at('title').text
于 2012-09-07T20:47:02.897 回答