2010-01-15 13 views
44

Estoy buscando automatizar algunas interacciones web, es decir, la descarga periódica de archivos desde un sitio web seguro. Esto básicamente implica ingresar mi nombre de usuario/contraseña y navegar a la URL apropiada.Firefox/Webkit sin cabeza, con secuencias de comandos en Linux?

Intenté crear scripts simples en Python, seguidos de scripts más sofisticados, solo para descubrir que este sitio web en particular utiliza algún mecanismo desagradable basado en Javascript y flash para iniciar sesión, haciendo que mis métodos resulten inútiles.

Probé HTMLUnit, pero parece que tampoco quiere funcionar. Sospecho que el uso de Flash es el problema.

Realmente no quiero pensar más en eso, así que me inclino por escribir un navegador para iniciar sesión y tomar el archivo que necesito.

Los requisitos son:

  • Ejecutar en servidor Linux (es decir, sin X corriendo.). Si realmente necesito tener X, puedo lograrlo, pero no seré feliz.
  • Sea confiable. Quiero comenzar esto y nunca pensar en eso otra vez.
  • Sea scriptable. Nada demasiado sofisticado, pero debería ser capaz de decirle al navegador los diversos pasos a seguir y las páginas para visitar.

¿Existen buenos juegos de herramientas para un navegador sin caracteres X-less con secuencias de comandos? ¿Has probado algo como esto y si es así tienes alguna palabra de sabiduría?

Respuesta

17

Realicé tareas relacionadas con IE embedded browser (aunque era una aplicación gui con el panel de componentes del navegador oculto). En realidad, puede tomar cualquier layout engine y cortar la lógica de salida. La navegación se debe hacer disparando eventos tipo script.

Puede usar Crowbar. Es la versión sin cabeza de firefox (motor Gecko). Convierte el navegador en un servidor RESTful que puede aceptar solicitudes ("buscar URL"). Por lo tanto, analizará html, lo representará como DOM, esperará la demora definida para todos los scripts realizados.

Funciona en Linux. Supongo que puede ampliarlo fácilmente para su objetivo usando JS y las habilidades ricas de XULrunner.

+0

¿Soporta Crowbar solicitudes POST http? La documentación es muy pobre ... – hamczu

1

No sé cómo hacer interacciones flash (y también estoy interesado), pero para html/javascript puede usar Chickenfoot.

Y para obtener un navegador headlined + scriptable que funcione en Linux, puede usar el Qt webkit library. Here is an example use.

+0

Thansk Richard, se ve bien, déjame intentarlo. – Parand

38

¿Qué hay de phantomjs?

+1

PhantomJS es de lejos el más fácil de integrar y está desarrollando formas de integración con marcos de pruebas automatizados. –

+2

Sí, pero si quiere simular algo como iniciar sesión en un sitio web y usar cookies, ¡buena suerte! –

+3

Phantomjs requiere un servidor X (http://code.google.com/p/phantomjs/issues/detail?id=33) –

8

¿Has probado Selenium? Te permitirá grabar un escenario de uso, usando una extensión para Firefox, que luego se puede reproducir usando varios métodos diferentes.

Editar: Me di cuenta de que esta fue una respuesta muy tardía. :)

6

Eche un vistazo a WebKitDriver. El proyecto incluye la implementación sin cabeza de WebKit.

-1

iMacros para Linux que permite la escritura de Firefox y Chrome: http://wiki.imacros.net/Linux

+0

Mientras iMacros se ejecuta en Linux, las instrucciones describen específicamente una técnica que requiere la configuración de una PANTALLA, lo que significa que no es corriendo sin cabeza, pero necesita un entorno de ventanas. –

0

Para lograr esto, acabo de escribir extensiones de Chrome que se registren en CouchDBs (example y su Futon). Agregue el sofá a los permisos en el manifiesto para permitir XHRs entre dominios.

(llegué a este hilo en busca de una alternativa sin cabeza a lo que he estado haciendo, después de haber encontrado este hilo, voy a tratar Palanca en algún momento.)

Además, teniendo en cuenta la extraña características de este sitio web, no puedo evitar preguntarme si puede explotar algún agujero de seguridad para evitar Flash y Javascript.

Cuestiones relacionadas