首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >open-uri Ruby错误

open-uri Ruby错误
EN

Stack Overflow用户
提问于 2012-04-10 09:20:23
回答 1查看 1.5K关注 0票数 1

我有代码:

代码语言:javascript
复制
require 'open-uri'
print "Enter a URL: "
add = gets
added = add.sub!(/http:\/\//, "")
puts "Info from:  #{add}"
open("#{add}") do |f|
  img = f.read.scan(/<img/)
  img = img.length
  puts "\t#{img} images"
  f.close
end
open("#{add}") do |f|
  links = f.read.scan(/<a/)
  links = links.length
  puts "\t#{links} links"
  f.close
end
open("#{add}") do |f|
  div = f.read.scan(/<div/)
  div = div.le1ngth
  puts "\t#{div} div tags"
  f.close
end

(是的,我知道它不是好的代码,请不要评论它)当我运行它时,对于URL,我输入,说:

代码语言:javascript
复制
http://stackoverflow.com

我得到以下错误:

代码语言:javascript
复制
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `initialize': No such file or directory - http (Errno::ENOENT)
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open_uri_original_open'
    from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/open-uri.rb:32:in `open'

为什么会出现这个错误,我如何修复它?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-10 09:40:31

String.sub!方法替换了原地的字符串,因此add.sub!(/http:\/\//, "")除了设置add之外,还更改了added的值。

要将open(name)方法与URI一起使用,name的值必须以URI方案开头,如http://

如果你想设置added,可以这样做:

代码语言:javascript
复制
added = add.sub(/http:\/\//, "")
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10081913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档