Par défaut Extraire plusieurs textes d'un site WEB en JAVA
Fermé
Skysynth
-
5 mai 2019 à 15:41
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 mai 2019 à 21:24
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 16 mai 2019 à 21:24
A voir également:
- Par défaut Extraire plusieurs textes d'un site WEB en JAVA
- Site de telechargement - Accueil - Outils
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Extraire une video youtube - Guide
- Site comme coco - Accueil - Réseaux sociaux
4 réponses
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
5 mai 2019 à 23:49
5 mai 2019 à 23:49
Bonjour,
Le site web exécute une requête à cette API : https://api.brawlstats.com/v6/clubs/profiles/282YLRCR
C'est elle qui transmet les données, au format JSON, pour remplir le site.
Un exemple de contenu : https://codebeautify.org/online-json-editor/cb7f92fc
Le site web exécute une requête à cette API : https://api.brawlstats.com/v6/clubs/profiles/282YLRCR
C'est elle qui transmet les données, au format JSON, pour remplir le site.
Un exemple de contenu : https://codebeautify.org/online-json-editor/cb7f92fc
Bonjour,
C'est génial ! Vous sauriez m'expliquer comment je peux envoyer une requête à cette API via un programme Java et récupérer ces données ?
C'est génial ! Vous sauriez m'expliquer comment je peux envoyer une requête à cette API via un programme Java et récupérer ces données ?
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 :
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 ?
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 :
{"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 ?
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
16 mai 2019 à 21:10
16 mai 2019 à 21:10
Bonjour,
Tu peux utiliser une bibliothèque de manipulation du JSON, par exemple https://search.maven.org/artifact/org.json/json/20180813/bundle
Tu peux utiliser une bibliothèque de manipulation du JSON, par exemple https://search.maven.org/artifact/org.json/json/20180813/bundle
import org.json.JSONObject; JSONObject json = new JSONObject("{...}"); String name = json.getString("name");
Oups ! Je n'ai pas pu envoyer le screen, j'avais pas remarqué, pas grave regarde ce que j'ai fait :
En enlevant toute la partie obsolète de la requête, voici les lignes importantes qui génère un JSONException : JSONObject ["tag"] not found
En enlevant toute la partie obsolète de la requête, voici les lignes importantes qui génère un JSONException : JSONObject ["tag"] not found
JSONObject json = new JSONObject(response.body());
System.out.println("name = " + json.get("tag")); // JSONException not found
System.out.println("trophies = " + json.getInt("trophies"));
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
16 mai 2019 à 21:24
16 mai 2019 à 21:24
Tu peux utiliser
json.keySet()pour savoir quelles sont les clés sur lesquelles tu peux faire un
get(key)ou même faire json.toString pour vérifier la structure du JSON manipulé.