re une solution parmis d'autre
re
bon comme je te l'ai dis avec les protections anti rebots on a des résultats surprenant ca prends bien la tete
depuis le temps j'ai bien appris que les protections anti robots n'était pas fiable a 100%
en biaisant un peu on arriver a un résultat
en fait si tu n'affiche pas la page dans un explorateur ca te met le bordel dans la page mais les données reste les mêmes
il suffit de savoir quoi chercher et comment
dans ce cas ca a été facile il faut pas chercher les tables il faut chercher les TR(enfant de la table)
par leur classname "one","one bott","one fRow bott" ,"two",two bott" etc....
et reconstruire ton listing avec les valeurs (innertext) des éléments
c'est un peu brouillon mais ca matche
regarde dans la fenêtre d'exécution c'est dans l'ordre
je te laisse le soin d'organiser le rapatriement des données dans le sheets a ta guise
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| Sub test()
Dim IE As Object, url As String
Set IE = CreateObject("internetexplorer.application")
myDate = Date '' pour aujourd'hui
'ou'
'myDate = Date - 1 '' pour hier
'ou
'myDate = Date + 1 '' pour demain
url = "http://www.tennisexplorer.com/results/?type=wta-single&year=2016&month=" & Month(myDate) & "&day=" & Day(myDate) & "&timezone=+12"
'url = " http://www.tennisexplorer.com/matches/?type=wta-single"
IE.Visible = False
IE.navigate url
Do: DoEvents: Loop Until IE.readystate = 4
For Each elem In IE.document.all
If elem.innertext Like "*info*" And elem.classname = "one fRow bott" Or elem.classname = "one bott" Or elem.classname = "two fRow bott" Or elem.classname = "two bott" Then Debug.Print elem.innertext & vbCrLf
If elem.classname = "one" Or elem.classname = "two" Then Debug.Print elem.innertext & vbCrLf & "=========="
Next
IE.Quit
End Sub |
Voila