Bonjour,
J'ai envie d'apprendre à récupérer des infos dans les codes sources de pages web.
Mais je ne veux pas simplement traiter une page, mais des milliers... J'ai essayé avec le code suivant (j'ai juste un formulaire avec un bouton enregistrer et un webbrowser):
Je rencontre 2 problêmes indépendants à l'éxécution :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 Private g_f_Donn As Worksheet Private Profil As Long Private Donnees As Variant Private chargement_ok As Boolean Private Sub Enregistrer_Click() Set g_f_Donn = ThisWorkbook.Worksheets("Profils") Enregistrer_Profils End Sub Sub Enregistrer_Profils() Dim Donnees As Variant Profil = 1 While Profil <= 1000 chargement_ok = False WebBrowser1.Navigate2 "http://www.XXX.Net/forums/member.php?u=" & Profil Do Until chargement_ok DoEvents Loop If Not WebBrowser1.document Is Nothing Then Application.Wait Now + TimeValue("00:00:01") Donnees = WebBrowser1.document.body.innerHTML Else Donnees = "" End If debut_nom = InStr(Donnees, "<STRONG>") If debut_nom > 1 Then Fin_Nom = InStr(debut_nom, Donnees, "</STRONG>") Nom = LCase(Mid(Donnees, debut_nom + 8, Fin_Nom - debut_nom - 9)) Else Nom = "Erreur" End If g_f_Donn.Cells(Profil, 1) = Profil g_f_Donn.Cells(Profil, 2) = Nom Profil = Profil + 1 Wend End Sub Private Sub WebBrowser1_DownloadComplete() chargement_ok = True End Sub
- La plupart du temps, le prog marche pour les 10, 20 premières pages puis il semble rentrer dans une boucle infinie (comme si le prog s'arretait sur une page inchargeable et que chargement_ok ne passait plus jamais à true.
- Parfois le test If Not WebBrowser1.document Is Nothing réussit, mais le programme plante à la ligne d'initialisation de la variable Donnees. Si je rentre en mode debug et tente de continuer en pas à pas, je passe cette erreur sans problèmes et sans avoir à remodifier le code![]()
Je semble donc avoir des problèmes de synchro... ou de surcharge mémoire... ou les deux...
Quelqu'un a-t-il déjà essayé de telles boucles ???
NB : le site sur lequel je teste mon code n'est pas xxx.net, ni developpez.net, mais c'est un forum php similaire.
Partager