Manejo de conexión fallida en proxy para Nokogiri

Tengo la siguiente línea de código que uso para raspar el html de un sitio. Como puede ver, paso un proxy a este

doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => 'http://177.19.134.66:8080'))

Algunas veces, estos servidores proxy se caen y luego aparece el error.

Un intento de conexión falló porque la parte conectada no respondió correctamente después de un período de tiempo, o la conexión establecida falló porque el host conectado no respondió. - conectar (2)

Soy muy nuevo en Ruby, pero lo que me gustaría hacer es crear una lista de direcciones IP de proxy. y luego haz que intente raspar usando el primero. y si falla, intente con el siguiente hasta que no quede nada para verificar ...

¿Cómo haría para crear una lista y luego manejar el error?

preguntado el 12 de junio de 12 a las 20:06

1 Respuestas

mas simple seria:

['http://localhost:8080','http://localhost:8888','http://localhost:8000'].each do |proxy|
  break if @doc = Nokogiri::HTML(open(Scrape.scrape_url + page.to_s, :proxy => proxy)) rescue nil
end

Observe '@doc' porque 'doc' quedará fuera del alcance cuando finalice el bucle.

Respondido el 13 de junio de 12 a las 00:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.