Impossible d'extraire certaines données

Y compris Power BI, Power Query et toute autre question en lien avec Excel
m
mazneoo
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 18 mai 2015
Version d'Excel : 2010

Message par mazneoo » 26 décembre 2018, 10:53

Bonjour tout le monde,

Tout d'abord bonnes fêtes à vous.

Ma question est simple, la réponse le sera peut-être moins.

Je cherche à extraire certaines données Web d'un site (Airlines Manager, il vous faudra un compte si vous souhaitez faire des tests)

Ci-joint une capture d'écran de la page en question

En gros lorsque j'extrait la donnée avec Power Query il m'extrait seulement ça :

Kind Name Text
Element HTML

Sur d'autres pages ça fonctionne très bien, mais pas sur celle-ci, parce que j'imagine qu'un format tableau n'a pas été utilisé sur la programmation du site en question.

Sur d'anciens fichiers, je faisais ce type d'extraction mais Excel n'utilisait pas Power Query, du coup ma question, peut-on désactiver le module Power Query d'Excel ? Parce que si j'utilise l'ancien extracteur, je n'ai en effet pas un beau format de sorti mais la donnée est tout de même exploitable.

Dans l'attente de votre retour.

Cordialement,
Capture.PNG
Capture.PNG (120.34 Kio) Vu 278 fois
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'996
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 décembre 2018, 13:48

Bonjour,
mazneoo a écrit :
26 décembre 2018, 10:53
Sur d'autres pages ça fonctionne très bien, mais pas sur celle-ci, parce que j'imagine qu'un format tableau n'a pas été utilisé sur la programmation du site en question.

Sur d'anciens fichiers, je faisais ce type d'extraction mais Excel n'utilisait pas Power Query, du coup ma question, peut-on désactiver le module Power Query d'Excel ? Parce que si j'utilise l'ancien extracteur, je n'ai en effet pas un beau format de sorti mais la donnée est tout de même exploitable.
En effet, PowerQuery ne fonctionnera que si la site est correctement structuré. Il ne pourra pas prendre en compte les div hidden, les données javascript, et autres éléments ...
D'autres solutions sont possible : getelementbyXXX, ScriptControl, voire simplement le décodage de responseText ...

Si tu pouvais nous passer (en mp si nécessaire) le fichier source texte de la page je pourrais y jeter un œil ...

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
mazneoo
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 18 mai 2015
Version d'Excel : 2010

Message par mazneoo » 26 décembre 2018, 17:43

Merci Steelson pour ta réponse.

Ci-joint le fichier texte
Les solutions proposées : getelementbyXXX, ScriptControl , responseText c'est du VBA ça non ?

Cordialement,
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'996
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 26 décembre 2018, 19:16

mazneoo a écrit :
26 décembre 2018, 17:43
Les solutions proposées : getelementbyXXX, ScriptControl , responseText c'est du VBA ça non ?
Oui

mazneoo a écrit :
26 décembre 2018, 17:43
Ci-joint le fichier texte
heu, je pense qu'il manque quelque chose !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
mazneoo
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 18 mai 2015
Version d'Excel : 2010

Message par mazneoo » 27 décembre 2018, 12:05

Je te l'envoie par MP il n'accepte pas que je l'envoie sur le forum
m
mazneoo
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 18 mai 2015
Version d'Excel : 2010

Message par mazneoo » 27 décembre 2018, 12:09

Ah en MP on peut pas non plus du coup je le partage avec mon compte OneDrive

https://1drv.ms/t/s!ApTTEg-gvBP-nv11c1QDQt7JNEu2WQ
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'996
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 27 décembre 2018, 19:53

Quelles sont les données qu'il faudrait récupérer ?

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'996
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 28 décembre 2018, 04:14

Les données en sont pas du tout organisées en "table" (sens html), mais dans des div subdivisées en span

Ce programme doit pouvoir extraire les données (merci PierreP56 : http://tatiak.canalblog.com/), mais sans mise en forme
Sub Lire()
Dim site As String
Dim oHtml As New HTMLDocument
Dim Elem1 As Object, Elem2 As Object
Dim lig As Long, col As Integer, S As Variant
Dim T As Variant

site = "__________"

    oHtml.body.innerHTML = HTML(site)
    lig = 1
    ReDim T(1 To 10, 1 To lig)
    For Each Elem1 In oHtml.getElementsByTagName("div")
        lig = lig + 1
        ReDim Preserve T(1 To 10, 1 To lig)
            col = 0
            For Each Elem2 In Elem1.getElementsByTagName("span")
                col = col + 1
                T(col, lig) = Elem2.innerText
            Next Elem2
    Next Elem1
    
    T = Application.Transpose(T)
    Cells.ClearContents
    Range("A2").Resize(UBound(T, 1), UBound(T, 2)) = T
    
End Sub

Function HTML(URL As String) As String
    With CreateObject("WINHTTP.WinHTTPRequest.5.1")
        .Open "GET", URL, False
        .send
        HTML = .responseText
    End With
End Function
Une des solutions serait alors de transformer dans .responseText les div en tr et les span en td pour récupérer un tableau, le coller dans le presse-papier avant de le coller dans une feuille excel mais je ne suis pas sûr à 100% du résultat ! N'ayant pas accès directement au site cela ne m'est pas possible de tester !

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
m
mazneoo
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 18 mai 2015
Version d'Excel : 2010

Message par mazneoo » 28 décembre 2018, 11:47

Pour la partie qu'il faut récupérer par rapport au Screenshot c'est la partie compte rendu :

La valeur Usé à : 0,34%
La valeur nombre de vols : 1
La valeur Heures de vol : 24
La valeur Check A : 190 214$

Le reste je suis capable de le récupérer sur d'autres pages, mais les données ci-dessus malheureusement n'apparaissent que sur cette page, sachant que derrière je vais faire une boucle pour venir récupérer tous mes avions et ça tous les jours (la donnée varie 1 fois par jour au moment ou l'avion atteri) et ensuite je vais historiser la donnée, afin de pouvoir monter des stats

Si tu veux faire des tests je peux tecommuniquer mes identifiants en MP

Mais auparavant (avant la version 2016), je pouvais extraire la donnée sans passer par Power Querry, c'est étonnant que MS ait fait ça non ?

En tout cas merci pour ton aide.

Cordialement,
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 13'996
Appréciations reçues : 829
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 28 décembre 2018, 11:51

mazneoo a écrit :
28 décembre 2018, 11:47
Mais auparavant (avant la version 2016), je pouvais extraire la donnée sans passer par Power Querry,
tu es sûr que c'est lié à excel ? je pense plutôt à une évolution du site !
mazneoo a écrit :
28 décembre 2018, 11:47
Pour la partie qu'il faut récupérer par rapport au Screenshot c'est la partie compte rendu :

La valeur Usé à : 0,34%
La valeur nombre de vols : 1
La valeur Heures de vol : 24
La valeur Check A : 190 214$
ok, cela doit pouvoir se faire je regarde

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message