IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Extraire plusieurs textes d'un site WEB en JAVA


Sujet :

avec Java

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Extraire plusieurs textes d'un site WEB en JAVA
    Bonjour/Bonsoir !

    Je cherche à enregistrer dans un tableau de String de taille 100, tous les pseudos des joueurs présent dans ce club : https://brawlstats.com/club/282YLRCR

    Problème étant, il doit se mettre à jour toutes les heures, donc pas moyen de le faire à la mano. Comment faire ? Je ne trouve pas d'ID ou de class qui les distinguent des autres textes.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    J'ai fais des recherches supplémentaires : j'utilise l'API jsoup.

    Sauf que si vous ouvrez le lien que j'ai mis, on peut observer un "Loading..." qui reste quelques secondes avant d'afficher les membres du club...

    Dans mon programme, cela se voit : au lieu de m'afficher le classement, je vois "Loading...".

    Des idées ?
    Images attachées Images attachées   

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    ça veut dire que comme pratiquement tout le reste du web depuis 2010, ce site fonctionne par AJAX et charge les données avec JavaScript plutôt que de les envoyer directement dans la page de l'URL demandée.

    Tu peux utiliser l'onglet "réseau" de la console de dev de ton navigateur, pour voir quelles requêtes sont faites en JavaScript lorsque tu charges la page. Ce sont ces requêtes-là que tu dois faire avec ton programme pour récupérer les données.

    Elles ne seront probablement pas en HTML, donc pas besoin de JSoup.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Hello,

    ça veut dire que comme pratiquement tout le reste du web depuis 2010, ce site fonctionne par AJAX et charge les données avec JavaScript plutôt que de les envoyer directement dans la page de l'URL demandée.

    Tu peux utiliser l'onglet "réseau" de la console de dev de ton navigateur, pour voir quelles requêtes sont faites en JavaScript lorsque tu charges la page. Ce sont ces requêtes-là que tu dois faire avec ton programme pour récupérer les données.

    Elles ne seront probablement pas en HTML, donc pas besoin de JSoup.
    D'accord, je fais mes recherches et je vous tiens au courant !

  5. #5
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Novembre 2006
    Messages
    503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2006
    Messages : 503
    Points : 1 332
    Points
    1 332
    Par défaut
    Demandes au Web master de https://brawlstats.com/club/ de te faire une page qui te sort la liste, par exemple au format délimité!

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Février 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Alimentation

    Informations forums :
    Inscription : Février 2018
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour/Bonsoir !

    Alors j'ai pas mal avancé, j'ai contacté un des programmeurs de l'API ( un français très sympathique au passage ) qui m'a tout expliqué.

    J'ai chargé le profile d'un joueur, voici la réponse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"tag":"LLUL2Y82","id":{"high":9,"low":2673228},"name":"cassidokan","nameColorCode":"CB5AFF","brawlersUnlocked":20,"victories":2996,"soloShowdownVictories":253,"duoShowdownVictories":194,"totalExp":64168,"expFmt":"948/1130","expLevel":110,"trophies":8773,"highestTrophies":8791,"avatarId":28000004,"avatarUrl":"https://media.githubusercontent.com/media/fourjr/bs-assets/master/player_icons/28000004.png","bestTimeAsBigBrawler":"1m 57s","bestRoboRumbleTime":"6m 9s","hasSkins":true,"club":{"id":{"high":7,"low":473519},"tag":"282YLRCR","name":"Oblivion [FR]","role":"Senior","badgeId":6,"badgeUrl":"https://media.githubusercontent.com/media/fourjr/bs-assets/master/club_badges/clan_badge_02_03.png","members":98,"trophies":945502,"requiredTrophies":9000,"onlineMembers":12},"brawlers":[{"name":"Colt","hasSkin":false,"skin":null,"trophies":529,"highestTrophies":548,"power":10,"rank":20},{"name":"Bull","hasSkin":false,"skin":null,"trophies":505,"highestTrophies":509,"power":7,"rank":20},{"name":"Dynamike","hasSkin":false,"skin":null,"trophies":500,"highestTrophies":500,"power":7,"rank":20},{"name":"Rosa","hasSkin":false,"skin":null,"trophies":500,"highestTrophies":500,"power":5,"rank":20},{"name":"Barley","hasSkin":true,"skin":"Wizard Barley","trophies":481,"highestTrophies":498,"power":7,"rank":19},{"name":"Brock","hasSkin":false,"skin":null,"trophies":460,"highestTrophies":490,"power":8,"rank":19},{"name":"Bo","hasSkin":false,"skin":null,"trophies":460,"highestTrophies":491,"power":7,"rank":19},{"name":"Poco","hasSkin":false,"skin":null,"trophies":427,"highestTrophies":442,"power":7,"rank":18},{"name":"Shelly","hasSkin":false,"skin":null,"trophies":425,"highestTrophies":433,"power":7,"rank":18},{"name":"Jessie","hasSkin":false,"skin":null,"trophies":425,"highestTrophies":440,"power":7,"rank":18},{"name":"El Primo","hasSkin":false,"skin":null,"trophies":424,"highestTrophies":429,"power":7,"rank":18},{"name":"Piper","hasSkin":false,"skin":null,"trophies":424,"highestTrophies":433,"power":6,"rank":18},{"name":"Carl","hasSkin":false,"skin":null,"trophies":422,"highestTrophies":422,"power":5,"rank":18},{"name":"Leon","hasSkin":false,"skin":null,"trophies":420,"highestTrophies":430,"power":5,"rank":18},{"name":"Frank","hasSkin":false,"skin":null,"trophies":410,"highestTrophies":420,"power":6,"rank":18},{"name":"Rico","hasSkin":false,"skin":null,"trophies":401,"highestTrophies":482,"power":8,"rank":19},{"name":"Darryl","hasSkin":false,"skin":null,"trophies":401,"highestTrophies":411,"power":7,"rank":17},{"name":"Nita","hasSkin":false,"skin":null,"trophies":399,"highestTrophies":407,"power":7,"rank":17},{"name":"Penny","hasSkin":false,"skin":null,"trophies":397,"highestTrophies":424,"power":6,"rank":18},{"name":"Pam","hasSkin":false,"skin":null,"trophies":363,"highestTrophies":382,"power":7,"rank":17}]}
    A travers tout ce blabla, j'aimerais pouvoir récupérer par exemple le pseudo du joueur ("name":"cassidokan"), ses trophées actuels("trophies:8773") et pour aller plus loin, pourquoi pas récupérer tous les noms de ses brawlers avec ses trophées.

    Problème étant, je rencontre une erreur IllegalStateException et je n'arrive pas à m'en défaire. Des idées ?
    Images attachées Images attachées  

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Hello,

    tu ne peux appeler response.body() qu'une seule fois. L'idée étant que parfois les réponses des requêtes HTTP sont énormes, et donc le client HTTP ne les garde pas en mémoire. Il permet de les lire au fur et à mesure qu'elles sont reçues.

    Bref dans ton cas la réponse est courte. Tu devrais la stocker dans une String, pour t'en servir plusieurs fois après que c'est fait.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. compléter des zones de texte sur un site web en delphi
    Par larnaud888 dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 06/02/2012, 15h32
  2. extraire un pdf d'un site web
    Par cyril15792 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 18/01/2012, 12h40
  3. [Débutant] extraire une partie d'un site web
    Par jolona dans le forum ASP.NET
    Réponses: 13
    Dernier message: 13/10/2011, 07h48
  4. extraire une photo depuis un site web
    Par azstar dans le forum C#
    Réponses: 3
    Dernier message: 19/09/2011, 17h05
  5. extraire les données d'un site web par HTMLPARSER
    Par sihammaster dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/04/2010, 16h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo