1

在上一个问题中,我找到了一个被黑但有效的方法来解析页面标题的答案

 url = %x(curl http://google.com)
 simian = curl.match(/<title>(.*)<\/title>/)[1]
 puts simian

现在我想知道是否有更好的方法通过使用像 net/http 这样的 ruby​​ 标准库来获取 url(代替 curl)。

另一个问题是,如果页面在标题中有一些非标准字符,它不会解析它并且 curl.match 无法完成。我试过了

 simian = s.encode('UTF-8') and then
 simian = curl.match(/<title>(.*)<\/title>/)[1]

但它会显示奇怪的字符,例如 1# 在此先感谢您的帮助

4

1 回答 1

1

使用 nokogiri 可能是最简单的解决方案:

require 'nokogiri'
require 'open-uri'

doc = Nokogiri::HTML(open('http://www.google.com'))
elt = doc.xpath('//title').first
puts elt.text() if !elt.nil?
于 2012-09-07T20:29:33.310 回答