Manejo de conexión fallida en proxy para Nokogiri
Frecuentes
Visto 867 equipos
1
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?
1 Respuestas
3
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 ruby screen-scraping nokogiri or haz tu propia pregunta.