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 :

copier le contenu d'une page web


Sujet :

VBScript

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut copier le contenu d'une page web
    Bonjour,
    Je dois tous les matins faire un copier-coller d'une page web ".aspx" depuis mon navigateur vers un fichier ".txt", mais j'aimerais automatiser cette tache.
    Quelqu'un aurait il une idée sur la manière de m'y prendre?

    Merci par avance

    PS : il n'y a pas d'image ni quoi que ce soit de bizarre juste du texte.

  2. #2
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Salut
    Si tu poste ici, n'as-tu pas déjà une idée de réponse
    un coup de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
    oIE.navigate "tonadresse.html"
    Do While (oIE.Busy) 
    WScript.Sleep 200 
    Loop
    ensuite faut cherche dans les propriété de oIE.document pour obtenir ce que tu cherches
    Je précise que j'ai jamais utilisé l'objet IE du coup je ne sais pas si Do While (oIE.Busy) fonctionne bien
    Je l'ai récup rapido sur internet.

    Du coup tout les matins tu n'auras plus qu'à lancer ton script
    Et sinon ben t'installe un task manager et tu lui demande de lancer ton script tout les matins
    Voir si tu tu cherches, je pense que tu peux même trouver pour obliger le lancement de ce script au démarage de ton pc

  3. #3
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    J'ai un peut de mal avec ce bout de code, à quel moment fais tu une copie?

  4. #4
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Bonne remarque il n'y a pas de copie dans mon code

    J'ai l'impression que je n'ai pas été très claire désolé
    Le bout code que je t'ai montré c'était juste pour te montrer comment on se connecte à une page internet et attendre qu'elle soit chargée.
    Pour faire la copie il faut ensuite copié l'ensemble du contenu l'objet oIE.
    Comme je te l'indiquais après pour copié le contenu tu dois t'adresser à la propriété oIE.Document.
    Après je ne sais pas qu'elle genre de copie tu souhaites.
    Veux-tu copier le contenu et la forme de la page (les balises html) ou souhaites-tu seulement le contenu?
    De plus la copie va dépendre de la structure de la page, présence de frame ou pas?
    Voila donc ta copie dépends de tout ça du coup, il n'y avait pas de copie dans mon morceau de code.

    Au cas ou, regarde toujours dans une doc s'il n'existe pas directement une méthode de copie mais perso je n'en connais pas.

    Au fait pour écrire dans un fichier texte go faq

  5. #5
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    En effet ma question n'était pas complète. Ce que je souhaite c'est faire une copie la plus simple possible sans image, sans frame, juste le texte brut et rien d'autre. Pour ce qui est d'écrire et de lire dans un fichier .txt pas de problème.
    Mon soucis c'est la copie.
    Je n'ai pas encore trouvé la méthode en passant par oIE.Document mais je vais continué à chercher.

    Merci.

  6. #6
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 040
    Points
    20 040
    Par défaut
    Tiens peu-être

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
    oIE.navigate "www.developpez.com"
    Do While (oIE.Busy) 
    	WScript.Sleep 200 
    Loop
    msgBox oIE.Document.documentelement.Innerhtml

  7. #7
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Salut, comme présicé plus haut, je ne pense pas qu'il existe une méthode de copie super simple.
    (En fait la seule qui pourrait exister d'après moi c'est d'arriver à considérer la page comme un flux et de le copier directe dans un fichier texte. Dans ce cas là tu aurais encore les balises, mais je n'ai aucune idée de comment faire)
    Dans l'autre cas je pense que ca va dépendre de ta page.
    Donc là il faut se renseigner sur la hierachie des propriétés html
    Imaginons que tout les éléments de ta page qui t'interessent soit définit par des id
    Tu pourrais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    texte= texte & oIE.Document.getElementById().Value
    en tout cas en javascript pour énumérer les différents éléments d'une page c'est getElementById(). Faut vérifier que ca existe en vbs

    Mais le truc c'est que si par exemple dans ta page il y a une table qui est défini avec un id le .Value va planter. Du coup ca dépend vraiment de page

    Edit : a ben bbil connaissait la bonne propriété

  8. #8
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    En effet cette fonction existe
    oIE.Document.getElementById()
    Mais le problème c'est j'ai plusieurs éléments à récupérer, et faire la liste des id serait un travail de fourmi. N'est il pas possible de faire un copier coller non pas du code source, mais juste de son contenu?

  9. #9
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut

    As-tu essayé la solution de bbil?
    Car perso j'ai testé et ca affiche tout le code de la page du coup ça devrait être suffisant non?
    Après il te suffit de faire de la manipulation de chaine de charactere
    Sur developpez pour des exemple d'utilisation .
    Tout balise html commence par < et fini soit par /> soit par > ca dépend comment c'est codé. Au pire sinon tu fais un dictionnaire des balises de la base pour les detecter et les traiter

    Et puis sinon regarde toujours dans les propriétés de documentelement s'il n'y a pas autre chose que Innerhtml. Perso je ne connais malheureusement pas de documentation avec les propriétés des objets IE, donc je peux pas te renseigner plus.

    Edit: 6 min de recherche et je tombe sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		MsgBox Document.documentElement.outerText
    essaye ça, ça devrait plus te correspondre

  10. #10
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Oui j'ai testé la fonction proposé par bbil! J'essayais justement de re-travailler le résultat.
    En revanche ce code la fonctionne exactement comme je le souhaitais !:
    MsgBox Document.documentElement.outerText
    Où peut on trouver les différentes méthodes qui pour Document.documentElement ?
    J'ai cherché mais sans trouver!

  11. #11
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Voici le code final de l'application :
    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
    dim file 
    file = "c:\madecopie.txt"
    CreateAfile(file)
     
    Set oIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
    oIE.navigate "http://atacoss.ac750.recouv/sites/Solutions/Demserv/Equipe%20CnirParis%20INTEGRATION/TB_ProlongContrat.aspx"
    Do While (oIE.Busy) 
    	WScript.Sleep 200 
    Loop
    WriteText file,oIE.Document.documentelement.outerText
     
    Function CreateAfile(resumeFile)
       Dim fso, MyFile 'fso pour File System Object
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set MyFile = fso.CreateTextFile(resumeFile, True)
    End Function
     
    Function WriteText(MyFichier,myText)
       Const ForReading = 1, ForWriting = 2, ForAppending = 8
       Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
       Dim fso, f, ts
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.GetFile(MyFichier)
       Set ts = f.OpenAsTextStream(ForAppending, TristateUseDefault)
       ts.WriteLine myText
       ts.Close
    End Function
    Merci pour votre aide

    Ps: si quelqu'un à un lien avec la liste des fonctionnalités de "Document.documentElement" surtout qu'il n'hésite pas à le poster !

  12. #12
    Membre régulier
    Inscrit en
    Juillet 2009
    Messages
    93
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 93
    Points : 90
    Points
    90
    Par défaut
    Comme dit précédemment je ne sais pas ou trouver celà
    J'ai trouvé le outer.Text par google en partant d'une recherche de innerhtml et j'ai parcouru les pages

    Je serais également interessé par un tel lien sur les propriété d'une page internet

    Pense au tag résolu

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

Discussions similaires

  1. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  2. recuperer le contenu d'une page web
    Par firejocker dans le forum MFC
    Réponses: 26
    Dernier message: 11/10/2005, 17h27
  3. [Servlet]Récupérer le contenu d'une page web
    Par Jarodnet dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 06/10/2005, 15h47
  4. copier le contenu d'une page web dans un fichier texte
    Par wassila dans le forum C++Builder
    Réponses: 30
    Dernier message: 28/08/2005, 22h27
  5. Réponses: 2
    Dernier message: 16/07/2004, 09h30

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