Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

IE>excel : extraire un prix (variable) sur une page web.

  • Initiateur de la discussion Initiateur de la discussion pascalito
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pascalito

XLDnaute Nouveau
Bonjour à tous en ce jour princier 🙂

Malgré mes recherches, je n'arrive pas à solutionner le problème suivant :

Je voudrais récupérer un prix sur une page web dont voici le code source.

<span class="price" id="rate_2482">97,00 €</span>

Ce prix pouvant être variable de la dizaine à la centaine, comment faire pour récupérer le prix situé entre >< ??

Cette page contenant plusieurs prix, je pensais que la macro devait identifier dans la page "rate_2482" et récupérer l'info située X caractère plus loin.

Je vous remercie par avance pour votre aide précieuse car je séche complétement.

Bien à vous
 
je ne vais pas essayer sur chrome je pense que c'est bon là c'est mort
Hello patrick,
en fait le site bloque les connexions qui viennent de France : en passant par mon VPN connecté par un serveur à Montréal, j'accède à la page.
Sinon pour le code ceci aurait du fonctionner :
VB:
Sub testCexcelCoco()
Dim IE As Object, elems As Object
Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
IE.navigate "https://www.homedepot.ca/produit/cgc-sheetrock-1-2-po-x-4-pi-x-8-pi-panneau-de-cloison-seche-ultra-leger/1000686028"
Do While IE.ReadyState <> READYSTATE_COMPLETE Or IE.Busy: DoEvents: Loop
a = IE.document.body.querySelector("span.hdca-product__description-pricing-price-value").innerText
MsgBox a
End Sub
mais Internet explorer est trop ancien pour le site et la page ne s'affiche pas entièrement et ça bloque alors sur le test Ready_State_Complete. Avec Edge en utilisant CDP, il y a un autre problème, la page est truffée de publicité et de pop-up si bien que le prix ne s'affiche pas si on ne répond pas à toutes les questions. Il faut avoir un bloqueur de pubub.

Ami calmant, J.P
 
Dernière édition:
 
Salut Jurassic et Patrick

J'ai essayé ton code, est effectivement ça bloque avec internet explorer qui n'affiche pas tout. Existe-t-il un code pour Edge ?

j'ai aussi essayé ce code
VB:
Sub HomeDepot()

code = htmlCodePage("https://www.homedepot.ca/produit/cgc-sheetrock-1-2-po-x-4-pi-x-10-pi-panneau-de-cloison-seche-ultra-leger/1000115026")
code = regexExtract(code, "<span class="hdca-product__description-pricing-price-value">(\d+) $</span>")(0)
MsgBox code

End Sub

Mais dans le code source pour la formule regexExtract, il y a déjà des guillemets en plus des miens pour ma formule.

Boîte de dialogue:
Erreur de compilation:
Attendu : séparateur de liste ou )

j'ai modifié pour :
Code:
Sub HomeDepot2()

    code = htmlCodePage("https://www.homedepot.ca/produit/cgc-sheetrock-1-2-po-x-4-pi-x-10-pi-panneau-de-cloison-seche-ultra-leger/1000115026")

    code = regexExtract(code, "<span class=""hdca-product__description-pricing-price-value"">(\d+) $</span>")

    Dim web As String
    web = """hdca-product__description-pricing-price-value"""
    Debug.Print web & " "

    MsgBox code

End Sub

Le code fonctionne cette fois, mais je n'obtient pas ma réponse dans le msgbox (elle apparait vide)

sinon, que puis-je faire pour envoyer la réponse dans la cellule A1 par exemple ?

La réponse que je cherche est (\d+) qui remplace le prix actuelle sur le site web

 
Hello,
Fais un point d'arrêt sur le deuxième code = et regarde ce qu'il y a dans la variable code . Normalement tu ne peux pas accéder à la page par autre chose qu'un navigateur et tu devrais avoir un Acces denied dans la réponse.
moi ça ne passe pas avec ce code :
VB:
Public Sub GetContents()
    Dim XMLReq As New MSXML2.XMLHTTP60
    Dim HTMLDoc As New MSHTML.HTMLDocument
    XMLReq.Open "Get", "https://www.homedepot.ca/produit/cgc-sheetrock-1-2-po-x-4-pi-x-10-pi-panneau-de-cloison-seche-ultra-leger/1000115026"
    XMLReq.send
    HTMLDoc.body.innerHTML = XMLReq.responseText
   msgBox  XMLReq.responseText
End Sub
Ami calmant, J.P
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…