Site en javascript, ajax ? ... source par vba ou autre ?
Fermé
astarius
-
30 déc. 2013 à 14:23
dadacourse Messages postés 128 Date d'inscription lundi 12 décembre 2011 Statut Membre Dernière intervention 5 mars 2023 - 21 janv. 2014 à 06:50
dadacourse Messages postés 128 Date d'inscription lundi 12 décembre 2011 Statut Membre Dernière intervention 5 mars 2023 - 21 janv. 2014 à 06:50
A voir également:
- Problème pmu serveur inaccessible
- Site de telechargement - Accueil - Outils
- Site comme coco - Accueil - Réseaux sociaux
- Site de vente en ligne particulier - Guide
- Quel site remplace coco - Accueil - Réseaux sociaux
- Site inaccessible - Guide
3 réponses
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
30 déc. 2013 à 16:58
30 déc. 2013 à 16:58
'lut, après une petite analyse, les données du planning sont récupérées par AJAX depuis une adresse, comme ceci:
Tu as de la chance qu'ils aient changé je dirais: les données sont au format JSON, qui est quarante milliards de fois plus simple a interpréter et à manipuler qu'un format basé sur XML, HTML inclus. Je vais pas m'étaler sur comment interpréter du JSON en VBA, c'est un peu long, et ce thread sur StackOverflow a une bonne réponse; notamment les réponses proposent de se servir de la librairie vba-json...
Si tu ouvres le JSON dictement, tu verras qu'il n'est pas formaté donc pas facile à lire, colle le contenu dans un éditeur de JSON, tu auras un jouli arbre avec toutes les valeurs, bien plus clair à comprendre.
Repères les valeurs que tu souhaites récupérer, et utilise la librairie JSON que tu utiliseras pour avoir ces valeurs en question
https://www.pmu.fr/turfInfo/client/1/programmes/26122013?meteo=true&specialisation=INTERNETLà ou le chiffre avant les paramètres correspond à celui à la fin de l'addresse que tu tous a donné
Tu as de la chance qu'ils aient changé je dirais: les données sont au format JSON, qui est quarante milliards de fois plus simple a interpréter et à manipuler qu'un format basé sur XML, HTML inclus. Je vais pas m'étaler sur comment interpréter du JSON en VBA, c'est un peu long, et ce thread sur StackOverflow a une bonne réponse; notamment les réponses proposent de se servir de la librairie vba-json...
Si tu ouvres le JSON dictement, tu verras qu'il n'est pas formaté donc pas facile à lire, colle le contenu dans un éditeur de JSON, tu auras un jouli arbre avec toutes les valeurs, bien plus clair à comprendre.
Repères les valeurs que tu souhaites récupérer, et utilise la librairie JSON que tu utiliseras pour avoir ces valeurs en question
Bonjour gravgun,
Tout d'abord merci infiniment pour ton aide ... trop cool :-)
Par contre ce n'est pas la seule page dont je souhaiterais récupérer les infos. En effet une fois les réunions connues, je vais sur chaque course, puis chaque cheval pour avoir toutes ses infos ..... bref pas mal d'infos à aller chercher.
Alors je me demandais s'il t'était possible de m'indiquer comment tu as déterminé l'adresse qui se cachait derrière l'ajax pour que je reproduise l'analyse sur toutes les pages dont je vais avoir besoin ? Est-ce grâce à des connaissances web, un outil particulier .... une boule de cristal ;-) ?
Pour le JSON je vais m'empresser de suivre les infos que tu m'as donné.
Encore un sincère merci pour ton aide
Loïc
Tout d'abord merci infiniment pour ton aide ... trop cool :-)
Par contre ce n'est pas la seule page dont je souhaiterais récupérer les infos. En effet une fois les réunions connues, je vais sur chaque course, puis chaque cheval pour avoir toutes ses infos ..... bref pas mal d'infos à aller chercher.
Alors je me demandais s'il t'était possible de m'indiquer comment tu as déterminé l'adresse qui se cachait derrière l'ajax pour que je reproduise l'analyse sur toutes les pages dont je vais avoir besoin ? Est-ce grâce à des connaissances web, un outil particulier .... une boule de cristal ;-) ?
Pour le JSON je vais m'empresser de suivre les infos que tu m'as donné.
Encore un sincère merci pour ton aide
Loïc
ElementW
Messages postés
4814
Date d'inscription
dimanche 12 juin 2011
Statut
Contributeur
Dernière intervention
5 octobre 2021
1 227
31 déc. 2013 à 10:51
31 déc. 2013 à 10:51
Firefox intègre un très bon panneau pour développeurs et j'ai utilisé le panneau "Réseau" ("Network"), et regardé ce qui passait par le réseau quand je chargeais la page; après c'est de la déduction, les données transitent souvent dans un format simple quand c'est chargé par AJAX, donc en JSON, XML ou autre.
Le bonus c'est que tu as vraiment toutes les infos sur ce qui circule, incluant ce que le navigateur a envoyé au serveur, ainsi que la réponse de ce dernier, tu peux donc recréer au mieux les conditions normales de navigation dans ton script.
Le bonus c'est que tu as vraiment toutes les infos sur ce qui circule, incluant ce que le navigateur a envoyé au serveur, ainsi que la réponse de ce dernier, tu peux donc recréer au mieux les conditions normales de navigation dans ton script.
dadacourse
Messages postés
128
Date d'inscription
lundi 12 décembre 2011
Statut
Membre
Dernière intervention
5 mars 2023
3
Modifié par dadacourse le 21/01/2014 à 07:48
Modifié par dadacourse le 21/01/2014 à 07:48
Bonjour astarius
Je rencontre exactement le même problème depuis le 18 décembre dernier (changement du PMU) et viens tout juste de tomber sur ta question.
La réponse de gravgun est un peu confuse pour moi...
As-tu résolu le problème?... merci de tes infos par avance.
Auparavant, voici la requête utilisée, sachant qu'en A1 est inscrit l'URL https://www.pmu.fr/turf/index.html#21012014/R1/C1
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & [A1].Value, _
Destination:=Range("$H$1"))
.Name = "index"
.FieldNames = True
.RowNumbers = True
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = True
.WebDisableDateRecognition = True
.WebDisableRedirections = True
.Refresh BackgroundQuery:=True
End With
Je rencontre exactement le même problème depuis le 18 décembre dernier (changement du PMU) et viens tout juste de tomber sur ta question.
La réponse de gravgun est un peu confuse pour moi...
As-tu résolu le problème?... merci de tes infos par avance.
Auparavant, voici la requête utilisée, sachant qu'en A1 est inscrit l'URL https://www.pmu.fr/turf/index.html#21012014/R1/C1
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & [A1].Value, _
Destination:=Range("$H$1"))
.Name = "index"
.FieldNames = True
.RowNumbers = True
.FillAdjacentFormulas = True
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = True
.WebDisableDateRecognition = True
.WebDisableRedirections = True
.Refresh BackgroundQuery:=True
End With