Question

Je suis un développeur Java et j’ai une question à propos de l’automatisation d’une tâche qui m’a été confiée. Je dois 3 fois par jour, connectez-vous à ce site Web que nous avons au travail, sélectionnez quelques éléments de formulaire, puis cliquez sur Soumettre pour obtenir un rapport imprimé. Je me demande comment je peux écrire une sorte de script pour automatiser cette tâche? Où devrais-je commencer? Dans quelle langue dois-je le faire? Je pensais que PHP pourrait faire cela ou même un script greasemonkey éventuellement?

Merci beaucoup.

Était-ce utile?

La solution

Consultez cURL en PHP. Il vous permet d’exécuter toutes les fonctions normales d’un navigateur Web avec un code (autre que le déplacement de la souris). Et oui, vous devrez faire un grattage d'écran.

Autres conseils

Je pense que le point de blocage potentiel qui n’a pas encore été abordé est votre phrase & "; vous connecter à ce site &"; ... en fonction de la manière dont vous devez vous connecter, vous devrez peut-être passez par une porte arrière pour accéder au rapport.

J'ai eu des problèmes avec ce genre de choses dans le passé quand je devais télécharger un rapport depuis un site tiers. Le problème était que je ne pouvais pas m'authentifier pour accéder aux paramètres de rapport en raison de la méthode codée en dur et peu conviviale pour les scripts qui me permettait de me connecter au site. Cependant, je présume que votre site est interne à votre organisation. Il est donc possible de contourner / de retravailler les exigences de sécurité pour accéder aux données. Si tel est le cas, vous devriez pouvoir utiliser l'une des méthodes de grattage d'écran décrites ci-dessus.

Si ce n'est pas le cas, vous devrez peut-être incorporer la procédure de connexion à votre script ou à votre application, télécharger et capturer tous les cookies éventuellement configurés et les intégrer à votre demande de données.

Je ne sais pas dans quelle langue votre formulaire est écrit, mais vous pouvez le faire:

  • réécrivez le formulaire dans un script qui génère le rapport lorsqu'il est appelé
  • utilisez une entrée cron pour planifier cette tâche tous les jours et envoyer le résultat à vous

Un cron est essentiellement une tâche planifiée sur les systèmes Unix. Les serveurs Windows peuvent utiliser le planificateur de tâches à peu près de la même manière.

Ce qui précède suppose que vous avez accès au script qui génère le rapport pour le moment et que vous pouvez le modifier / le copier dans un nouveau fichier qui vous enverra le résultat par courrier électronique. Sinon, vous devrez peut-être vous pencher sur le grattage d'écran. En tant que développeur Java, vous pouvez trouver ceci La liste des utilitaires de nettoyage d’écrans Java est très pratique pour commencer.

Cela s'appelle " Web scraping " ou " screen scraping " ;, et il existe de nombreuses bibliothèques pour le faire. Je ne pouvais cependant pas parler d'un outil spécifique à Java: je suis un gars .Net (la méthode .Net serait System.Net.WebClient ou System.Net.HttpWebRequest / System.Net.HttpWebResponse). Mais je suis sûr qu'il y a quelque chose.

En attendant, la première étape consiste à accéder à la page où vous entrez les valeurs du formulaire et à afficher la source de la page. Recherchez le & Lt; form & Gt spécifique; élément que vous complétez et voyez où il est posté (c'est action ). Ensuite, trouvez tout & Lt; input & Gt; < sélectionnez > ;, < textarea > les éléments que vous utilisez, y compris les entrées masquées du formulaire et déterminez les valeurs à obtenir. Cela vous indiquera comment construire votre demande une fois que vous aurez trouvé une bibliothèque qui vous permettra de l’envoyer.

Si vous devez d'abord vous connecter au site pour accéder à la page, les choses peuvent être plus compliquées. Vous devrez peut-être récupérer et analyser une valeur de session ou pouvoir envoyer certains cookies au serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top