Webbrowser - récupérer id à partir itemprop [Résolu]

TonyLucky - 7 mars 2016 à 17:05 - Dernière réponse :  TonyLucky
- 8 mars 2016 à 09:52
VBA Office (Excel, Word ...) Posez votre question Signaler Répondre au sujet
Bonjour à tous,

EXCEL VBA XP
J'ai mis un Webbrowser dans un UF qui me permet d'accéder à un site pré-défini (chapitre.com). A partir de mon formulaire, je peux chercher un livre précis, aller sur la page de ce livre et récupérer les infos qui m'intéressent (Editeur, résumé, photo,...)
Dans la plupart des cas, j'arrive à récupérer la bonne info. Par contre, les pages "détail du livre" sont organisées différemment en fonction du contenu.
L'id de la date de parution peut changer. J'ai rusé en en paramétrant deux, mais il peut y en avoir plus, idem pour l'éditeur.
J'ai cependant identifié dans le code source une zone identique : it emprop. Mais je ne sais pas comment récupérer l'info de cet it emprop, ni comment récupérer l'id correspondant dans mon code. Et j'avoue que mes recherches sur internet ont été infructueuses (ou mal faîtes...)
Il y a peut-être d'autres solutions. J'avais fait, par exemple, une requête web excel, qui me permettait de récupérer en pavé toutes les infos, de les copier sur une page temporaire et d'extraire les données. Mais cela augmentait mon temps de traitement.
J'apprécierai toute aide ou suggestion.

En pièce jointe, mon fichier test.
http://www.cjoint.com/c/FChpUp5mWmb

Je détaille mon problème, avec des exemples de code, en page Accueil de mon fichier.

Merci par avance de votre temps
Afficher la suite 

4 réponses

Répondre au sujet
ucfoutu 18022 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 13 décembre 2017 Dernière intervention - 7 mars 2016 à 17:48
0
Utile
1
Bonjour,
Je pense que tu ferais mieux d'exposer ICI problème et code concernés.
Car (tu sembles ne pas en être conscient ) rares sont ceux qui acceptent de télécharger et ouvrir un classeur .xls. Cela est répété ici fréquemment :
- un tel fichier peut être porteur de "bébètes" à ton insu
- un tel fichier peut avoir été également "sain" au départ (au upload) et l'être moins à l'arrivée (au download)
- certains sites de dépôt ont par ailleurs de surcroît acquis une "certaine réputation"
Merci d'avoir pris le temps de regarder ma question. Voici les précisions de code. Ma demande n'a pas bougé. Voici le code que j'utilise dans le webbrowser pour récupérer l'info "date de parution

'date parution
Set HtmlElementStandard_2 = OwebDOC.all("ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl03_rpLinks_ctl00_ltValue")
    If HtmlElementStandard_2 Is Nothing Then
    Set HtmlElementStandard_2 = OwebDOC.all("ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl04_rpLinks_ctl00_ltValue") 'date parution
    TexteExtrait_2 = HtmlElementStandard_2.innerText
    ElseIf HtmlElementStandard_2 Is Nothing Then
    TexteExtrait_2 = vbNullString
    Else
    TexteExtrait_2 = HtmlElementStandard_2.innerText
    End If


Maintenant, l'id pouvant changer d'une page sur l'autre, j'ai cherché un point commun, qui semble être itemprop =datePublished

Voici deux exemples de page html
http://www.chapitre.com/CHAPITRE/fr/BOOK/diwo-jean/la-caleche,36519409.aspx
(L 542)
<li>
                <span id="ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl03_ltLabel">Date de parution :</span>
                <meta itemprop="datePublished" content="2010-11-05" />
                <span class="productDetails-items-content" >                                         
                            
                            <span id="ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl03_rpLinks_ctl00_ltValue">05/11/2010</span>
                        
                </span></li>
        
            <li>


http://www.chapitre.com/CHAPITRE/fr/BOOK/maillet-raymonde-piat-colette/le-matelot-des-fleuves,10233169.aspx
(L 429)
li>
                <span id="ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl02_ltLabel">Date de parution :</span>
                <meta itemprop="datePublished" content="1995-01-01" />
                <span class="productDetails-items-content" >
                    
                            
                            
                            <span id="ctl00_PHCenter_productBottom_productDetail_rpDetails_ctl02_rpLinks_ctl00_ltValue">1995</span>
                        
                </span></li>
        
            <li>


Ma question :
Comment puis-je trouver l'itemprop "DatePublished" et comment, à partir de là, puis-je récupérer soit l'id ou l'innertext ?
En espérant que mon énoncé soit clair.
Commenter la réponse de ucfoutu
cs_MPi 3859 Messages postés mardi 19 mars 2002Date d'inscription 15 décembre 2017 Dernière intervention - Modifié par cs_MPi le 7/03/2016 à 20:39
0
Utile
Bonjour,

Tu pourrais essayer ainsi

    Dim Texte, Texte2
Set Texte = OwebDOC.getElementsByTagName("meta")

For Each Texte2 In Texte
If InStr(1, Texte2.outerHTML, "datePublished") > 0 Then
MsgBox Texte2.Content
End If
Next


MPi²
Commenter la réponse de cs_MPi
0
Utile
Bonjour,

Merci pour votre réponse simple qui fonctionne parfaitement.
Si je comprends bien, je peux utiliser GetElementByTagName pour span, div, meta,... Je l'avais essayé avec itemprop, mais cela ne fonctionnait pas.

J'ai pu aussi adapter ce code pour la recherche de l'éditeur, qui ne se présente pas de la même façon.

Encore merci et bonne journée,
Tony

PS : c'est la 1ière fois que je poste sur ce site et bien qu'ayant coché 'recevoir les réponses par mail', je ne les reçois pas et je ne peux passer la question en 'Résolu'. Si vous pouviez le faire, je vous en serais reconnaissant.
Commenter la réponse de TonyLucky

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.