Pregunta

Soy un desarrollador de Java y tengo una pregunta acerca de la automatización de una tarea que me han dado.Tengo a 3 veces al día, inicio de sesión en este sitio web, tenemos en el trabajo, seleccione un par de elementos de formulario y, a continuación, haga clic en enviar para obtener un informe impreso.Me pregunto cómo puedo escribir algún tipo de script que automatice esta tarea?¿Por dónde debo empezar?¿En qué idioma debo hacerla?Yo estaba pensando en PHP podría ser capaz de hacer esto o incluso un script de greasemonkey posiblemente?

Muchas gracias.

¿Fue útil?

Solución

Consulte cURL en PHP. Le permite realizar todas las funciones normales de un navegador web con código (aparte de mover el mouse). Y sí, necesitarás hacer raspado de pantalla.

Otros consejos

Creo que el punto de conflicto potencial que aún no se ha tocado es su frase " inicie sesión en este sitio web " ... Dependiendo de cómo necesite iniciar sesión, es posible que deba entra por una puerta trasera para acceder al informe.

Tuve problemas con este tipo de cosas en el pasado cuando tuve que descargar un informe de un sitio de terceros. El problema era que no podía autenticarme para acceder a los parámetros del informe debido a la forma codificada y poco amigable con las secuencias de comandos que tenía que iniciar sesión en el sitio. Sin embargo, supongo que su sitio es interno de su organización, por lo que es posible omitir / modificar los requisitos de seguridad para acceder a los datos. Si este es el caso, entonces debería poder usar uno de los métodos de raspado de pantalla descritos anteriormente.

De lo contrario, es posible que deba incorporar el procedimiento de inicio de sesión real en su script o aplicación, descargar y capturar las cookies que se puedan configurar e incorporarlas a su solicitud de datos.

No sé en qué idioma la forma escrita, pero lo que puedes hacer es:

  • reescribir el formulario a un script que genera el informe cuando se le llama
  • el uso de un cron la entrada a programar esta tarea se debe realizar a diario y enviar la salida a usted

Un cron es básicamente una tarea programada en los sistemas Unix.Los servidores basados en Windows puede utilizar el Programador de Tareas para la misma final.

Lo anterior supone que tienen acceso a la secuencia de comandos que genera el informe en el momento y puede modificar, copiar a un nuevo archivo que se enviará por correo electrónico el resultado para usted.Si no, entonces usted necesita para buscar en la pantalla de raspado.Como eres un desarrollador de Java, usted puede encontrar esta lista de Java pantalla raspado de utilidades útil para empezar.

Se llama " web scraping " o " screen scraping " ;, y hay muchas bibliotecas para hacer esto. Sin embargo, no pude hablar con una herramienta específica de Java: soy un tipo .Net (la forma .Net sería System.Net.WebClient o System.Net.HttpWebRequest / System.Net.HttpWebResponse). Pero estoy seguro de que hay algo.

Mientras tanto, el primer paso es ir a la página donde ingresa los valores del formulario y ver el origen de la página. Busque el & Lt; form & Gt específico; elemento que está completando y vea dónde publica (es acción ). Luego, encuentre cualquier & Lt; input & Gt; < seleccione > ;, < textarea > elementos que usa, incluidas las entradas ocultas para el formulario, y descubra qué valores necesita obtener. Eso le dirá cómo crear su solicitud una vez que encuentre una biblioteca que le permita enviarla.

Si primero necesita iniciar sesión en el sitio para acceder a la página, las cosas pueden ser más complicadas. Es posible que deba recuperar y analizar un valor de sesión, o poder enviar ciertas cookies al servidor.

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