Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVA] Récupérer des données web en JAVA

Sujet résolu
    22 octobre 2015 à 19:03:05

    Bonjour,

    Je m'explique, j'ai créer un logiciel Agenda qui gère des événements. Pour aller plus loin dans le projet je souhaite lorsque l'utilisateur rentre un lieu pour son nouveau événement effectuer une recherche via Google, puis récupérer les données afficher, pour ensuite les afficher à l'utilisateur. Exemple, si l'utilisateur marque comme lieu : Restaurant Molard Paris, une recherche est effectuer puis les informations (images du restaurant, numéro de tel, adresse...ect) sont affiché à l'utilisateur.

    Voilà ce que je souhaite faire. Je sais qu'en VisualBasic c'était plutôt simple (mais moins complet), il suffisait de rentrer l'adresse, de passer en boucle les balises, on prédéfinissait les balises qui nous intéressaient (exemple :"t","p","img"...) puis on pouvait les récupérer l'HTML de l'élément, donc sont "src" pour une image et l'afficher par la suite. Mais comment faire en Java ?

    Merci !! ;)
    • Partager sur Facebook
    • Partager sur Twitter
      22 octobre 2015 à 19:13:12

      Bonsoir.

      Pour récupérer les données tu peux utiliser HttpURLConnection

      Pour parser le HTML il y a Jsoup.
      (qui permet aussi de récupérer le contenu d'ailleurs)

      • Partager sur Facebook
      • Partager sur Twitter
      Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
        22 octobre 2015 à 19:33:44

        Merci de ta réponse,

        Je viens d'incorporer Jsoup dans mon projet, je filtre les éléments via un getElements ByTag.

        Merci ;)

        -
        Edité par PierreChèvre 22 octobre 2015 à 19:46:47

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2015 à 20:33:53

          J'ai une petite question.

          Je veux récupérer les images du restaurant de ce lien :https://www.google.fr/?gws_rd=ssl#q=Brasserie+Mollard

          Je fais donc :

          org.jsoup.nodes.Document doc = Jsoup.connect("https://www.google.fr/?gws_rd=ssl#q=Brasserie+Mollard").get();
          System.out.println(doc.body().getElementsByTag("img"));

          Cela me retourne simplement dans la console :
          "<img src="/images/icons/product/chrome-48.png">"

          alors qu'il existe plein d'autre balise <img>. Chose bizarre si je change le lien avec celui de l’accueil Wikipédia alors je vais avoir toutes les balises <img>, mais pas pour Google. Est-ce moi qui mis prend mal?

          • Partager sur Facebook
          • Partager sur Twitter
            22 octobre 2015 à 20:47:50

            Si tu fais un System.out.println(doc) tu remarqueras (ouverture après copié/collé dans un fichier .html) que c'est la page d'accueil.

            Pourquoi ? je ne sais pas, surement une sécurité.

            Sinon il existe des framework de test permettant la navigation sur internet (HtmlUnit, Selenium), mais c'est plus lourd qu'une simple requête via Jsoup. 

            -
            Edité par Pinguet62 22 octobre 2015 à 20:48:56

            • Partager sur Facebook
            • Partager sur Twitter
            Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
              22 octobre 2015 à 20:58:50

              Merci pour ces informations. Cela me semble bizarre car je sais que via VisualBasic je faisais la même chose (récupération de donnée sur un lien google) et cela marchait très bien. Je vais tester HtmlUnit cela ma l'air complet.

              Merci :)

              • Partager sur Facebook
              • Partager sur Twitter
                22 octobre 2015 à 21:09:56

                Bon, après avoir jeter un coup d’œil à HtmlUnit, et surtout après avoir vu tout les .jar à mettre dans le projet !, je me suis dit que juste pour une petite requête cela sert à rien. J'ai eut la bonne idée d'essayer la même recherche mais via Bing qui lui aussi propose des images pour les recherche, et cela marche ! (youpi) je peux avoir les données, de plus bing ressemble énormément à Google donc je peux avoir les mêmes informations.
                • Partager sur Facebook
                • Partager sur Twitter
                  22 octobre 2015 à 21:26:02

                  C'est plus compliqué qu'une simple requête, car il y a des éléments derrière tout ça (cookies, agent, ...).

                  Oui importer les JAR à la main c'est lourd, c'est pour ça qu'il existe des outils bien pratiques comme Maven.
                  Si tu dois approfondir le Java cela peut être intéressant.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Angular 2 est l'avenir, jQuery c'est de la merde !!! - Java 8 c'est l'an 2016+ (programmez en 1 ligne)
                    5 février 2016 à 11:01:30

                    Bonjour je veux créer une application de partage de données securisée sur internet via JAVA, mais je n'ai pas beaucoup de notions sur le partage de données. s'il vous plait guider moi sur les demarches que je doit suivre. je compte sur vous. Merci
                    • Partager sur Facebook
                    • Partager sur Twitter

                    [JAVA] Récupérer des données web en JAVA

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown