我有一个简单的html解析器(用于学习目的),我一直在研究:

require 'open-uri'
puts "Enter URL to parse HTML: "
url = gets.chomp
puts "Enter tag to parse from: "
tag = gets.chomp
response = open(url).read
title1 = response.index(tag)
title2 = response.index(tag.insert(1,'/')) -1
result = response[(title1 + tag.length - 1)..title2]
print result 

当我输入http://twitter.com时,我得到以下错误信息:

ERROR: `open_loop': redirection forbidden: http://twitter.com -> https://twitter.com/ (RuntimeError)
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:149:in `open_uri'
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:704:in `open'
from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/2.1.0/open-uri.rb:34:in `open'
from /home/ubuntu/workspace/htmlparse.rb:6:in `<main>' 

有什么建议或帮助吗?我是Ruby新手,我知道其他html解析模块,但我这么做是为了学习Ruby的基础知识.谢谢

推荐答案

看看open_uri_redirections颗Ruby .

它修补了Ruby的OpenURI,允许从HTTP重定向到HTTPS或其他方式.

Ruby相关问答推荐

Ruby;人;docs-使用\";?

用函数组合枚举器的Ruby方法

如何使用 gsub 删除返回字符串中的/和/i?

设计登录根路由rails 3

判断一个数组是否是Ruby中另一个数组的子集

配置 SubLime Linter 插件以使用 Ruby 1.9 语法

带有索引的 Ruby `each_with_object`

在 YAML 变量中包含 jekyll / liquid 模板数据?

将元素添加到 ruby​​ 数组返回新数组

Ruby 中方法名称的限制是什么?

git,Heroku:预接收挂钩被拒绝

Ruby 中的 %w{} 和 %W{} 大写和小写百分比 W 数组文字有什么区别?

在 Ruby 中查找内存泄漏的原因

Ruby:除非与如果不是

计算文件中的行数而不将整个文件读入内存?

如何在 Ruby 中编写复杂的多行 if 条件?

Python 中的一切都像 Ruby 一样是对象吗?

严格将字符串转换为整数(或 nil)

Ruby:从 Ruby 中的变量创建哈希键和值

如何使用 Ruby 删除回车?