Bonjour à tous !
J'essaie de récupérer des données sur le web grâce au très bon tuto de qwazerty.
Mon code est fonctionnel et me satisfait dans la plupart des cas, j'aimerais donc pouvoir le laisser tourner de temps en temps afin de passer en revue plusieurs centaines de pages.
Cependant, j'ai souvent un soucis qui revient que je ne parviens pas à résoudre. Schématiquement ma macro opère comme ceci :
1. je charge une page internet de type www.unsite.com/P10000
2. j'attends que la page soit complètement chargée
3. a Si à la fin du chargement de la page (ie.readystate = 4), cette dernière est de la forme www.unsite.com/P#####, alors le produit existe et je relève les infos qui m'intéressent
b Sinon, la page est en général de la forme www.unsite.com/error404 et alors le produit n'existe pas, j'en prends note.
4. je passe au produit suivant P10001
Mon problème vient du fait que parfois, la macro observe la forme de l'url comme étant celle du 3a alors que lorsque je vérifie de mon côté, j'ai bien une erreur 404 concernant le produit visé. Je pense donc que la page www.unsite.com/P10000 atteint un état ie.readystate = 4 avant d'être redirigée vers une page d'erreur. Mon code continue donc comme si le produit existait et bug lors de l'action getelementsbyclassname (qui n'existe pas vu que le produit n'existe pas).
Existe t-il un moyen de contourner ce problème ? J'ai essayé de faire attendre le programme 500 millisecondes avec Sleep puis de revérifier l'état de chargement de la page, mais je perds trop de temps et j'observe encore le même problème.
Je ne pense pas être encore assez calé pour tirer au clair cette histoire, du coup je fais appel à votre aide
En vous remerciant par avance,
Bonne soirée à tous,
Guillaume
Partager