2009-04-29 18 views
25

estoy conectando a un sitio web, registrarse.¿Cómo uso Mechanize para procesar JavaScript?

El sitio web me redirecciona a páginas nuevas y mecanizar se ocupa de todos los puestos de trabajo de galletas y de redirección, pero, no puedo conseguir la última página. Usé Firebug e hice el mismo trabajo de nuevo y vi que había dos páginas más que tenía 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 entenderlos porque no se parece al código normal de la página. ¿Para qué son esas páginas? ¿Cómo pueden redirigir a otras páginas? ¿Qué debo hacer para pasar estos?

+3

¿Por qué no pones el javascript en un sitio pegado como http://pastie.org/ y publicas el enlace aquí? – method

Respuesta

36

Si necesita manejar páginas con Javascript, intente con WATIR o Selenium, ya que manejan un navegador web real y pueden manejar cualquier Javascript. WATIR Classic requiere IE o Firefox con una cierta extensión instalada, y verá las páginas parpadear en la pantalla mientras funciona.

Su otra opción sería entender lo que hace el Javascript en la página ofensiva y pasarlo por alto manualmente, pero eso parece oneroso.

+1

gracias a todos. watir hizo exactamente lo que yo quería hacer :) se ve muy bien, me lleva más a ruby ​​:) en el primer momento el sitio web que estaba tratando de conseguir estaba enojado conmigo por user_agent, pero cuando lo configuré para firefox, el problema ha ido. stackoverflow rocks! amo aquí :) – user96960

+0

@millimoose ¿puedes ocultar el navegador mientras ejecutas el script en WATIR? – Volatil3

+0

Whoa, thread nigromancia. Ya no tengo idea y apostaría un "no", y en cualquier caso, esta es una pregunta diferente a la que OP hizo, por lo que puedes pedirla por separado en SO para que alguien más tenga la oportunidad de responder. También consideraría buscar en PhantomJS, que es un automatizador WebKit sin cabeza (es decir, "sin IU"). Funciona bastante bien, pero la última vez que quise usarlo para algo, la API asíncrona hizo que hacer lo que necesitaba fuera demasiado intrincado, así que terminé usando Selenium. – millimoose

13

Actualmente, Mechanize no maneja JavaScript. Se habla de fusionar Johnson 's capacidades en Mechanize, pero hasta que eso ocurra, usted tiene dos opciones:

  1. averiguar el JavaScript lo suficientemente bien como para entender cómo atravesar esas páginas.
  2. Automatice un navegador real que haga entienda JavaScript usando Watir.
+0

Johnson es un proyecto muerto. Hay un reemplazo? – zhon

5

¿Qué son esas páginas? cómo pueden redirigir a otras páginas. ¿Qué debo hacer para pasar esto?

A veces se trabaja en esas páginas. A veces, el JavaScript está ahí para evitar el acceso automático, como lo que estás tratando de hacer :). Muchos sitios web tienen controles innecesarios para asegurarse de tener un "buen" navegador, así que asegúrese de que su user_agent esté configurado para algo común, como IE. A veces configurar el user_agent para que parezca un navegador antiguo le permitirá pasar sin JavaScript.

La automatización de sitios web es divertida porque tiene que ser más astuto que el sitio web y sus desarrolladores de software, utilizando múltiples estrategias. Como dijeron los demás, Watir es la mejor herramienta para pasar JavaScript en este momento.

Cuestiones relacionadas