7
votes

Comment avoir une application Java interagir avec un site Web

J'ai un programme qui prend des données d'un fichier Excel et le manipule pour l'utilisateur. Mais pour obtenir des mises à jour du fichier Excel, ils doivent être téléchargés à partir d'un site Web. J'ai à l'origine essayé d'utiliser la classe de robots pour accéder au site Web, connectez-vous avec nom d'utilisateur et mot de passe, puis accédez à la section correcte du site Web et trouvez le bouton indiquant "Télécharger Excel Spreadsheet" et cliquez dessus. Mais je comprends que c'est une façon horrible de le faire et ça ne marche pas toujours. Quelle est une meilleure façon de le faire afin que mon programme puisse aller sur le site Web et accéder à la page que je souhaite, puis téléchargez les données. J'ai lu sur "Scrappement de page" mais je ne pense pas que cela me permettrait de le faire. Je veux vraiment interagir avec la page Web non tellement télécharger le contenu de celui-ci. Toute aide est la bienvenue. Merci, Peter


1 commentaires

Le site Web fournit-il une API que vous pouvez utiliser au lieu de devoir l'obtenir via un bouton Soumettre.


3 Réponses :


0
votes

Vous pouvez utiliser des demandes HTTP pour télécharger le fichier si vous connaissez l'URL. Un rapide Google a trouvé ce: http://download.oracle.com/javase /Tutorial/networking/urls/readingwriting.html Téléchargez le fichier et enregistrez sur le disque


2 commentaires

Merci, j'ai sauvé le lien pour l'avenir, mais le lien que j'ai besoin de télécharger n'a pas d'URL directe que je peux obtenir sans créer d'abord de vous connecter au site Web. J'ai donc besoin d'un moyen d'interagir avec le site Web afin que je puisse me connecter et atteindre le lien


Le site Web en question propose-t-il un type d'API pour ce faire cela? Sinon, gratter est vraiment votre seule option, à part à utiliser votre solution de robot (qui, comme vous le dites, est assez horrible :)



0
votes

Je n'ai pas compris que nous utilisons maintenant pour télécharger le fichier Excel. Je peux vous offrir les solutions suivantes:

  1. wget pour Java
  2. Apache Commons Net pour les protocoles réseau
  3. Curl pour Java

    Je pense que cela devrait vous aider ...


0 commentaires

15
votes

Si vous avez besoin d'interagir avec le site Web, Selenium / WebDriver est parfait pour vos besoins:

http://code.google.com/p/selenium/wiki/getingtingttingstarted

Exemple de recherche Google: xxx


3 commentaires

S'il y aurait un moyen d'accomplir cela sans montrer à l'utilisateur ce qui se passe? Comme dans le navigateur ne s'ouvrirait jamais mais tout serait encore fait dans les coulisses?


Assurez-vous d'utiliser un navigateur sans tête comme Phantomjs ou démarrez un navigateur en mode sans tête


Je pense que ceci est un lien actuel pour selenium selenium.dev/downloads