IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBScript Discussion :

Script qui va récupérer le contenu balise "strong" d'une page html


Sujet :

VBScript

  1. #1
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut Script qui va récupérer le contenu balise "strong" d'une page html
    Bonjour le Forum,

    N'ayant que très peu de connaissances en programmation, serait-il possible via un script .vbs de récupérer le contenu de balises d'une page html et de le copier dans un fichier texte en faisant un saut de ligne à chaque nouvelle balise?
    En fait, je cherche un script qui puisse récupérer tout le contenu des balises "strong" d'une page html. Celui-ci est assez court et si possible que chaque contenu des balises soient copié dans un fichier txt en sautant une ligne à chaque contenu trouvé.
    Merci d'avance pour votre aide et vos idées de script.

  2. #2
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Re bonjour le forum,

    Pour avancer ma problématique : j'ai réussi à convertir ma page web en .txt
    Maintenant, j'obtiens un fichier avec une certaine structure (qui est répétitive...) :
    blablablablablablablablablablablablablablablablablablablablablablablablablablabla
    blablablablablablablablablablablablablablablablablablablablabla
    samsamsamsamsamsamsamsamsamsam
    (un saut de ligne)
    (un espace) et une durée sous la forme mm:ss

    Et j'ai cette structure mélangé avec du "autre" texte que je retrouve "x" fois sur mon fichier .txt
    Ma question est la suivante?
    Existe-il un code qui puisse analyser l'ensemble du fichier texte et copier/coller toutes les lignes se situant 2 lignes en dessus de la durée et une ligne en dessus de l'espace (= texte en gras dans mon exemple) dans un autre fichier txt ou sur une feuille Excel? Il faudrait que ces différentes lignes se copient les une sous les autres si possible ^^

    Merci d'avance pour vos réponses.

  3. #3
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    bonjour,

    le parsing d'un fichier html par un script VBS est toujours possible

    un exemple qui utilise Internet Explorer, lit le contenu d'une page "test.htm"
    récupère le contenu des tags <STRONG> et le sauvegarde dans un fichier texte "tsthtml.txt"
    le chemin est à adapter évidemment...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
    Dim oIE,oFSO,oFile,oColTag,oItem,Result
    Set oIE = CreateObject("InternetExplorer.Application")
    Set oFSO = Createobject("Scripting.FileSystemObject")
    oIE.Visible = False
    oIE.Navigate "file://localhost/C:/Documents and Settings/User/Mes documents/test.htm"
    Do Until oIE.ReadyState = 4
      WScript.Sleep 500
    Loop
     Set oColTag = oIE.Document.getElementsByTagName("strong")
    If oColTag.length > 0 Then Set oFile = oFSO.OpenTextFile("C:\Documents and Settings\User\Mes documents\tsthtml.txt",2,True)
    For Each oItem In oColTag
      oFile.WriteLine oItem.innerText
    Next
    If IsObject(oFile) Then oFile.Close
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  4. #4
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Bonjour omen999,

    Un GRAND MERCI pour votre code qui fonctionne à merveille et d'une vitesse à couper le souffle ^^
    Serait-il possible de vous demander juste encore une petite chose?
    Est-ce qu'il est possible via le script de numéroter 01. 02. 03. 04. etc.... les tags récupérés par le script et copier dans le fichier tsthtml.txt ??
    Le saut de ligne a déjà lieu, c'est parfait !! Si on pouvait faire une numérotation dans la foulée ça serait le TOP!!

    Merci de votre aide dans tous les cas.

  5. #5
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2009
    Messages
    3 839
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 839
    Points : 9 222
    Points
    9 222
    Par défaut

    Je ne sais pas si ça vous convient ou non cette modification ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Option Explicit
    Dim oIE,oFSO,oFile,oColTag,oItem,Result,URL,OutPutFile,Count,ws
    URL = " http://www.developpez.net/forums/d1628719/autres-langages/general-visual-basic-6-vbscript/vbscript/script-va-recuperer-contenu-balise-strong-d-page-html/"
    OutPutFile = "OutPut_Strong.txt"
    Set oIE = CreateObject("InternetExplorer.Application")
    Set oFSO = Createobject("Scripting.FileSystemObject")
    set ws = CreateObject("wscript.shell")
    oIE.Visible = False
    oIE.Navigate URL
     
    Do Until oIE.ReadyState = 4
      WScript.Sleep 500
    Loop
    Count = 0
     Set oColTag = oIE.Document.getElementsByTagName("strong")
    If oColTag.length > 0 Then Set oFile = oFSO.OpenTextFile(OutPutFile,2,True)
    For Each oItem In oColTag
        Count = Count + 1
        oFile.WriteLine Lpad(Count,2) & " . "& oItem.innerText & oFile.WriteLine
    Next
    oIE.Quit()
    If IsObject(oFile) Then oFile.Close
    ws.run OutPutFile
    '*********************************************************************************
    Function LPad(ByVal v, ByVal l)
      If Len(v) > l Then l = Len(v)
      LPad = Right(String(l,"0") & v, l)
    End Function
    '*********************************************************************************

  6. #6
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    plus simple...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oFile.WriteLine Right("0" & Count,2) & ". " & oItem.innerText
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  7. #7
    Membre du Club
    Homme Profil pro
    Apprentis développeur en "Herbe"
    Inscrit en
    Mars 2014
    Messages
    310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Apprentis développeur en "Herbe"
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2014
    Messages : 310
    Points : 64
    Points
    64
    Par défaut
    Un grand merci à vous pour vos réponses.
    J'ai pu faire ce que je souhaitais!! Au TOP encore merci....
    Bonne soirée à vous et au forum.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [RegEx] Extraire le code entre les balises <body> d'une page html
    Par abousa3d dans le forum Langage
    Réponses: 5
    Dernier message: 19/05/2010, 10h35
  2. [RegEx] Extraire des balises liens d'une page HTML
    Par basaltik dans le forum Langage
    Réponses: 7
    Dernier message: 17/08/2009, 11h47
  3. [RegEx] Récupérer le contenu du <body> d'une page HTML
    Par lOeil dans le forum Langage
    Réponses: 4
    Dernier message: 15/08/2009, 22h49
  4. Réponses: 15
    Dernier message: 24/05/2007, 12h02
  5. Réponses: 22
    Dernier message: 29/03/2007, 22h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo