Pregunta

Estoy buscando automatizar algunas interacciones web, a saber, la descarga periódica de archivos de un sitio web seguro. Básicamente, esto implica ingresar mi nombre de usuario/contraseña y navegar a la URL apropiada.

Intenté secuencias de comandos simples en Python, seguido de secuencias de comandos más sofisticadas, solo para descubrir que este sitio web en particular está utilizando un desagradable mecanismo basado en JavaScript y Flash para iniciar sesión, lo que hace que mis métodos sean inútiles.

Luego probé htmlunit, pero eso tampoco parece querer funcionar. Sospecho que el uso de Flash es el problema.

Ya no quiero pensarlo, así que me estoy inclinando por escribir un navegador real para iniciar sesión y tomar el archivo que necesito.

Los requisitos son:

  • Ejecute en el servidor Linux (es decir, no X en ejecución). Si realmente necesito que XI pueda hacer que eso suceda, pero no seré feliz.
  • Ser confiable. Quiero comenzar esto y nunca volver a pensar en eso.
  • Ser scriptable. Nada demasiado sofisticado, pero debería poder decirle al navegador los diversos pasos para tomar y las páginas para visitar.

¿Hay algún buen kits de herramientas para un navegador scriptable sin cabeza y sin cabeza? ¿Has intentado algo como esto y, de ser así, tienes alguna palabra de sabiduría?

¿Fue útil?

Solución

Hice una tarea relacionada con el navegador incrustado IE (aunque era una aplicación GUI con panel de componentes del navegador oculto). En realidad puedes tomar cualquier motor de diseño y cortar la lógica de salida. La navegación se debe realizar mediante eventos similares a script.

Puedes usar Palanca. Es una versión sin cabeza de Firefox (motor Gecko). Convierte el navegador en un servidor RESTFUL que puede aceptar solicitudes ("ORL de búsqueda"). Por lo tanto, analiza HTML, lo representa como DOM, espera el retraso definido para todo el script realizado.

Funciona en Linux. Supongo que puede extenderlo fácilmente para su objetivo usando JS y Rich Xulrunner Sability.

Otros consejos

Qué pasa fantomjs?

Has probado Selenio? Le permitirá registrar un escenario de uso, utilizando una extensión para Firefox, que luego se puede reproducir utilizando varios métodos diferentes.

Editar: me acabo de dar cuenta de que esta era una respuesta muy tardía. :)

Mira esto Webkitdriver. El proyecto incluye la implementación sin cabeza de WebKit.

No sé cómo hacer interacciones flash (y también estoy interesado), pero para HTML/JavaScript puede usar Pata de pollo.

Y para que un navegador sin cabeza + scriptable funcione en Linux, puede usar el Biblioteca QT WebKit. Aquí hay un ejemplo de uso.

Para lograr esto, solo escribo extensiones de Chrome que publican en CouchDBS (ejemplo y es Futón). Agregue el sofá a los permisos en el manifiesto para permitir XHR de dominio cruzado.

(Llegué a este hilo en busca de una alternativa sin cabeza a lo que he estado haciendo; habiendo encontrado este hilo, voy a probar Cobar en algún momento).

Además, teniendo en cuenta las características extrañas de este sitio web, no puedo evitar preguntarme si puede explotar un hoyo de seguridad para evitar el flash y JavaScript.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top