¿Cómo uso Mechanize para procesar JavaScript?
-
03-07-2019 - |
Pregunta
Me estoy conectando a un sitio web, iniciando sesión.
El sitio web me redirige a nuevas páginas y Mechanize se ocupa de todos los trabajos de cookies y redireccionamiento, pero no puedo obtener la última página. Usé Firebug e hice el mismo trabajo otra vez y vi que hay dos páginas más que tuve que pasar con Mechanize.
Eché un vistazo rápido a las páginas y vi que hay algunos códigos JavaScript y HTML, pero no pude entenderlo porque no parece el código de una página normal. ¿Para qué son esas páginas? ¿Cómo pueden redirigir a otras páginas? ¿Qué debo hacer para pasar estos?
Solución
Si necesita manejar páginas con Javascript, intente WATIR o Selenium : estos manejan un navegador web real y, por lo tanto, pueden manejar cualquier Javascript. WATIR Classic requiere IE o Firefox con una cierta extensión instalada, y verás las páginas parpadear en la pantalla mientras funciona.
Tu otra opción sería entender qué hace el Javascript en la página ofensiva y evitarlo manualmente, pero eso parece oneroso.
Otros consejos
Actualmente, Mechanize no maneja JavaScript. Se está hablando de eventualmente fusionar las capacidades de Johnson en Mechanize, pero hasta que eso suceda, tienes dos opciones :
- Calcule el JavaScript lo suficientemente bien como para entender cómo recorrer esas páginas.
- Automatice un navegador real que sí entienda JavaScript usando Watir .
¿para qué son esas páginas? Cómo pueden redirigir a otras páginas. ¿Qué debo hacer para pasar estos?
A veces se trabaja en esas páginas. A veces, el JavaScript está ahí para evitar el acceso automatizado, como lo que intentas hacer :). Una gran cantidad de sitios web tienen comprobaciones innecesarias para asegurarse de que tiene un " bueno " navegador, así que asegúrese de que su user_agent
esté configurado como algo común, como IE. A veces, configurar user_agent
para que se vea como un navegador antiguo te permitirá pasar sin JavaScript.
La automatización del sitio web es divertida porque debe ser más inteligente que el sitio web y sus desarrolladores de software, utilizando múltiples estrategias. Como han dicho los demás, Watir es la mejor herramienta para superar JavaScript en este momento.