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. super merci bcp de ta patience, et du temps que tu m'a consacré.. on est quand meme " ensemble " depuis 10h30 ce matin lol
    salut!!
    1. Modérateur
      Je n'ai pas le temps de faire le programme pour toi.

      Par contre, tu peux installer Python (ainsi que la librairie win32con), ils sont gratuits.

      Ensuite tu pourra lancer ce programme.

      Pour lancer un programme externe en Python, on peut utiliser os.system() ou popen() (voir le module subprocess).

      Ce que tu demande, c'est vraiment de créer un programme qui va pilote IE et faire différentes actions.
      Cela va nécessiter un peu de programmation.
      1. merci.. tu peut pas savoir de quelle merde tu me sort
        il te faudrai longtemps a toi pour compilé cette fonction sous la forme d'un executable?? parceque blaireau comme je suis il me faudra 256ans pour m'en depétré!!
        encore merci bcp!!
        1. Modérateur
          ou bien le prog agis sur n'importe qu'elle page??

          ça marchera avec n'importe quelle page.

          python donnera la main a la macro, qui copiera la page et envera la commande d'une nouvelle page au coordonnée non identifiable... et python devra reitéré sa verification etc... etc...

          Sans problème.
          Python peut lancer d'autres programmes.
          1. ok deja merci mon pote c'est super cool...!!
            eske python avec la fonction while detecte la fin d'une page qu'il connait deja... ou bien le prog agis sur n'importe qu'elle page??
            j'explique, des qu'un page sera détéctée comme terminée, python donnera la main a la macro, qui copiera la page et envera la commande d'une nouvelle page au coordonnée non identifiable... et python devra reitéré sa verification etc... etc...
            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. 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
                  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. 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. 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. merci bcp... je regarde ca et je te recontact dans l'am... tu sera dans le coin?
                        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. 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. 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
                              • 2