2012-04-04 14 views
11

Estoy usando Hpricot y OpenURI para analizar páginas web y extraer direcciones URL de ellas.open-uri no está redirigiendo http a https

Cuando obtengo un enlace como "http: rapidshare.com", no está redirigiendo a https. Este es el error que tengo:

/home/leonidus/.rvm/rubies/ruby-1.9.3-p125/lib/ruby/1.9.1/open-uri.rb:216:in 
`open_loop': redirection forbidden: http:.................=>  
https:......................... 
. 
. 

He intentado utilizar el manejador de excepciones OPENURI::HTTPREDIRECT pero por otra parte estoy consiguiendo el mismo error. Intenté todos los blogs, pero no se resuelve allí también.

+3

https://github.com/jaimeiniesta/open_uri_redirections. parche empaquetado como una gema. –

+0

gema 'open_uri_redirections' trabajado para mí. Gracias Jaime! –

Respuesta

13

Consulte this Ruby bug report para obtener una explicación de por qué está experimentando este problema. Ver this gist para un parche de mono en OpenURI para permitir redirecciones "inseguras".

+0

El error está en la gema del clip. ¿Alguna idea si se solucionó en alguna versión allí? –

+0

"Actualizado por Yusuke Endoh hace más de 1 año - Tracker cambió de Bug a Feature" – ZirconCode

+0

Esta es una vieja respuesta, pero vale la pena mencionar: La razón por la cual no es seguro es que todas y cada una de las solicitudes sobre HTTP tienen el poco probable papel de aluminio pero técnicamente posible posibilidad de ser modificado durante el vuelo El código de parches para permitir redirecciones inseguras presenta un problema de seguridad, cuando el curso correcto es usar https: // siempre a través de cualquier red que no sea de confianza y ver http: // con sospecha y consecuencias que disminuyen la privacidad. – Barry