我需要在ruby中使用open uri打开一些网页,然后使用nokogori解析这些网页的内容。
我只是这样做的:
require 'open-uri'
content_file = open(user_input_url)
这适用于:
http://www.google.co.in
和http://google.co.in
但当用户输入www.google.co.in
或google.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/