Detectionde page web
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
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.
-
ModérateurPour Python, tu trouvera des choses là:
http://wikipython.flibuste.net/ -
Modérateur:-)
-
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!! -
ModérateurJe 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. -
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!! -
Modérateurou 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. -
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... -
ModérateurNon, 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. -
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?
-
Modérateurok.
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). -
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..) -
Modérateurc'est python qui va chercher la page..??
pagehtml = urllib.urlopen('https://www.google.fr/?gws_rd=ssl').read()
Là c'est Python qui va lui-même cherche la page.
Mais dans ce cas là:
ie.Navigate('https://www.commentcamarche.net/')
C'est IE qui va la chercher.
A piori, si tu veux faire une capture d'écran, c'est la seconde solution qu'il faut prendre. -
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!! -
ModérateurJe serai là, mais pas de façon régulière.
-
merci bcp... je regarde ca et je te recontact dans l'am... tu sera dans le coin?
-
ModérateurOn 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. -
tu peut develoopé un peut COM MSHTML?? je suis une buse en prog..:-)
-
Modérateurmmmm... 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). -
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é... -
Modérateurok.
Avec quel logiciel tu fais ces macros ?
- 1
- 2