Detectionde page web

Bonjour les pros...
j'ai 2 questions a posé...
1er : comment pourrais je savoir que la totalité des information d'une page web sont arrivé... en fait je voudrais qu'une macro puisse le detecté.. car la continuation de la sequence de cette macro depent de sa capacité a attendre et detecté que la page web soit disponible..
2eme: elle conserne le sablier d'attente... ou puije trouvé les fonctions qui declanche le sablier d'attente, toujours dans une optique de detection de page web( sablier fini donc page dispo)..
Ca peut vous paraitre confus mais je ne suis pas programeur....
si vous avez des reponses a m'apportté vous pouvez egalement me contacté par msn.....=> andre.lannee@wanadoo.fr
d'avance merci!!

27 réponses

Résumé de la discussion

Plusieurs propositions visent à détecter la fin du chargement d'une page web pour synchroniser une macro, afin que celle-ci puisse continuer uniquement lorsque la page est effectivement disponible et prête à l'action. Des solutions évoquent Python pour charger le contenu via urllib ou des scripts pilotant Internet Explorer avec COM MSHTML, puis attendant l’état ReadyState COMPLETE avant de lancer la suite. D'autres évoquent Macro Express ou des extensions pour des captures et vérifications, tandis que certains privilégient des boucles d'attente et des lectures du registre. En pratique, le contrôle IE via COM MSHTML est une option fiable pour piloter le chargement et agir dès que la page est prête.

Bobot (l’IA à votre service)
  1. Modérateur
    mmm... je ne comprend pas bien le but.

    Et puis dans quel langage ?
    1. salut... je sais que ce n'est pas tres clair... tu a la possibilitée qu'on en parle sur msn??
  2. Modérateur
    Non pas sur MSN.
    D'abord parceque je n'ai pas de login MSN et que je déteste MSN, ensuite parceque si je répond ici, peut-être que la réponse pourra profiter à d'autres internautes (c'est tout l'intérêt de ce forum).

    Si je comprend bien, tu as créé un progamme qui va chercher une page web, et tu veux savoir quand la page web a terminé d'être récupérée, c'est ça ?

    Ou bien tu parle d'une page web chargée dans le navigateur ?
    1. ok..
      je parle d'une page web de navigateur...
      j'ai crée une macro, mais elle n'abouti pas car je suis tributaire de la vitesse de chargement de la page, je voudrais donc savoir si une fonction macro pouvait detecté la fin d'affichage de la page..??
      1. Modérateur
        Dans quel langage ?

        VBScript ? VBA ? AutoIt ? Autre ?
        1. je n'ai pas de preference... pour l'instant je me sert de logiciel de macro que j'ai trouvé dans telecharger .com
          je debloque la macro avec un ctrl..x... et elle se substitue a la frappe clavier..
          mais si tu as un moyen plus simple avec un language de programation... je suis super preneur ;-)
          1. Modérateur
            Pour aller cherche une page web en Python:

            import urllib
            pagehtml = urllib.urlopen('https://www.google.fr/?gws_rd=ssl').read()


            Et c'est tout.

            On a la page web une fois qu'elle est entièrement chargée.

            Mais si tu me disais quel est le but final, on pourrait mieux t'aider.
            1. je veux pouvoir faire des copies d'ecran de page de navigateur par l'intermediare d'une macro... j'arriva a appelé la page.. mais quanq je change de page, la fonction copier intervient avant l'affichage de la page donc la macro stoppe... je pourrai mettre un <delay> mais on n'est jamais sur de la vitesse a laquelle elle va s'affichée.. je voudrai donc un moyen de detecté le fait qu'elle soit affichée afin de lancé ma fonction copier collé et ainsi de suite
              1. il s'appele macro express.. dispo en shareware sur tele... . com
                mais je suis pas fixé sur celui la... si t'en a d'autres a me conseillé...
                1. Modérateur
                  mmmm... je vois.

                  Dans ce cas, il faudrait peut-être utiliser l'objet COM MSHTML de Microsoft.
                  Je n'ai jamais essayé de l'utiliser, mais je pense qu'on doit pouvoir pilote IE pour lui faire charger une page et vérifier que le chargement est bien terminé, puis lancer la capture quand la page est terminée.

                  Mais ça nécessite un peu de programmation.

                  Si quelqu'un a une autre idée...

                  (Pour faire des captures (manuelles), j'utilise le navigateur Firefox avec l'extension Pearl Crescent Page Saver).
                  1. Modérateur
                    On peut contrôller IE par programme.

                    Par exemple, le programme Python suivant lance IE, lui demande de charger une page, attend la fin de chargement et affiche le code HTML de la page.

                    #! python
                    import time,sys
                    from win32com.client.gencache import EnsureDispatch
                    from win32com.client import constants
                    
                    ie = EnsureDispatch('InternetExplorer.Application')
                    ie.Visible=True
                    ie.Navigate('https://www.commentcamarche.net/')
                    while 1:
                        state = ie.ReadyState
                        if state == constants.READYSTATE_COMPLETE: break
                        time.sleep(0.1)
                    
                    print ie.Document.documentElement.innerHTML.encode(sys.stdout.encoding,'replace')


                    (code inspiré du wiki pyhton: http://wikipython.flibuste.net)

                    Il faudrait ajouter à ça la capture d'écran, et ça devrait tourner.
                    1. merci bcp... je regarde ca et je te recontact dans l'am... tu sera dans le coin?
                      1. re..
                        d'apres la ligne de commande que tu m'as donnée, c'est python qui va chercher la page..??
                        ...
                        eskil existe un flag que l'on peut testé ( ce flag representant la fin de chargement de n'importe qu'elle page demandée), car, je ne connais pas l'URL de la page suivante, puisque ma macro l'apelle en cliquant sur un bouton lien!!
                        1. Ce qui nous interesse ce n'est pas d'aller chercher une page mais de detecté que cette page est effectivement chargé .
                          donc comment pouvoir indiqué a notre macro que la page est bien la et complete!!(flag, ou lecture d'un registre quelconque..)
                          1. Modérateur
                            ok.
                            Donc c'est le second cas qu'il faut utiliser
                            (avec la boucle while 1... qui sert à détecter la fin du chargement de la page).
                            1. et... sans passé par python ou autre ya til un endroit dans la base de registre ou ma macro pourrait trouvé la confirmation du chargement de la page precedement affichées?
                              1. Modérateur
                                Non, IE n'indique pas en base de registre qu'il a fini de charger une page.

                                Tu peux aussi le faire en VBScript (.vbs).
                                Le programme est quasiment identique.
                                • 1
                                • 2