我需要在ruby中使用open uri打开一些网页,然后使用nokogori解析这些网页的内容。
我只是这样做的:

 require 'open-uri'
 content_file = open(user_input_url)

这适用于:http://www.google.co.inhttp://google.co.in但当用户输入www.google.co.ingoogle.co.in时失败。
对于这样的输入,我可以附加http://https://并返回打开页面的内容。但这对我来说是个大麻烦。
有没有更好的方法在ruby中实现这一点(即将这些用户输入转换为有效的open_uri url)。

最佳答案

uri = URI("www.google.com")
if uri.instance_of?(URI::Generic)
    uri = URI::HTTP.build({:host => uri.to_s})
end
content_file = open(uri)

还有其他方法,请参见参考:http://www.ruby-doc.org/stdlib-2.0.0/libdoc/uri/rdoc/URI/HTTP.html

关于ruby - 转换为可以通过open-uri打开的有效网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20090181/

10-16 02:30