Estoy tratando de acceder a una URL y, al pulsarla, accederé a URL consecutivas.
Tanto en Postman como en Ruby (estoy usando NET HTTP), recibo un error que dice "habilitar Javascript para que el sitio web funcione correctamente".
Pero en el navegador, todo funciona bien. En el navegador, si apago javascript, veo el mismo error.
Pregunta: ¿Es posible simular la misma experiencia de navegador en Postman o Ruby NET:HTTP?
No, no es posible. No con NET::HTTP. En realidad, necesita ejecutar el navegador. ¡Pero puedes ejecutarlo en modo sin cabeza!
Afortunadamente, en Ruby hay algunas gemas geniales que te permiten lograrlo. Personalmente, uso con mayor frecuencia Ferrum , que ejecuta Chromium en segundo plano y le permite interactuar con el sitio web utilizando una API extendida de Nokogiri. Ferrum usa el protocolo CDP para interactuar con Chromium y posiblemente con Firefox.
En el pasado, usé Watir , que básicamente envuelve Selenium WebDriver con una API más agradable y funciona con todos los navegadores. Su millaje puede variar con esto, me fue mucho más fácil con Ferrum y Ferrum proporciona una API compatible con Nokogiri, mientras que Watir no. Por otro lado, Watir es mucho más maduro.
Probé titiritero-ruby , que es principalmente un puerto de la biblioteca titiritero de JavaScript. Al igual que Ferrum, también usa la interfaz CDP, pero puede proporcionar un mejor soporte que Ferrum para varias características, porque como puerto de titiritero, contiene mucho conocimiento que se puso en titiritero que se usa ampliamente. Es bastante nuevo, pero muy interesante.