Condividi:        

Scarico dati Forebet.com

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

Scarico dati Forebet.com

Postdi apocrimata75 » 17/09/16 11:45

Buongiorno a tutti. Ho provato a scaricare dei dati dal web su un foglio excel dal sito http://www.forebet.com/it/pronostici-calcistici-per-oggi con la macro di seguito riportata.

Purtroppo la stessa non restituisce niente se non un errore nella stringa
Codice: Seleziona tutto
Set myColl = IE.document.getElementById("thetable")


Qualcuno gentilmente può darmi una mano? Grazie mille.

Codice: Seleziona tutto
Sub Prosoccer2()

Sheets("prove prosoccer").Select
Range("a1:z2000").Select
    Selection.ClearContents
myUrl = "http://www.forebet.com/it/pronostici-calcistici-per-oggi"     '<<<<
Set IE = CreateObject("InternetExplorer.Application")
'
With IE
    .navigate myUrl
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
'
myStart = Timer  'attesa addizionale
Do
    DoEvents
    If Timer > myStart + 2 Or Timer < myStart Then Exit Do
Loop

Set myColl = IE.document.getElementById("thetable")
Set my2Coll = myColl.getElementsByTagName("span")

For Each myspan In my2Coll
DoEvents
    If myspan.className = "comp" Then I = I + 1: j = 0
    If Left(myspan.className, 5) <> "" Then
        Cells(I, j + 1).Value = myspan.innerText
        j = j + 1
    End If
Next myspan
'Stop     'Vedi testo
'
'Chiusura IE
IE.Quit
Set IE = Nothing
End Sub
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 189
Iscritto il: 28/05/11 13:22

Sponsor
 

Re: Scarico dati Forebet.com

Postdi apocrimata75 » 17/09/16 13:55

IN attesa di un aiuto vs ho modificato la macro così
Codice: Seleziona tutto
Sub provascarico()

myUrl = "http://forebet.com/it/pronostici-calcistici-per-oggi"
Set IE = CreateObject("InternetExplorer.Application")
   
With IE
    .navigate myUrl
    .Visible = True
    Do While .Busy: DoEvents: Loop    'Attesa not busy
    Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
'
myStart = Timer  'attesa addizionale
Do
    DoEvents
    If Timer > myStart + 1 Or Timer < myStart Then Exit Do
Loop
'Leggi le tabelle su FoglioXX
Sheets("prove prosoccer").Select     '<<< Vedi testo
Cells.ClearContents

Set myColl = IE.document.getElementsByTagName("TABLE")
For Each myItm In myColl
    For Each trtr In myItm.Rows
        For Each tdtd In trtr.Cells
            Cells(I + 1, j + 1) = tdtd.innerText
            Cells(I + 1, 1).Select
            j = j + 1
        Next tdtd
        I = I + 1: j = 0
    Next trtr
I = I + 2
Next myItm
'SendKeys "{F5}", True
'        SendKeys "{ENTER}", True
IEQuit:
'Chiusura IE
IE.Quit
Set IE = Nothing
End Sub


Tralasciando le prime 18 righe inutili (si possono eliminare?) per il resto scarica tutto, anche troppo, essendo sufficiente solo la prima tabella, ma come selezionarla???
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 189
Iscritto il: 28/05/11 13:22

Re: Scarico dati Forebet.com

Postdi Anthony47 » 18/09/16 17:20

Ma quello che avevi usato inizialmente era il codice che estrae i dati da prosoccer.eu/football/, mica tutti i siti hanno un elemento con ID = "TheTable", ne' tutti hanno uno Span con classname = comp.

Saggiamente hai commutato sulla macro che ti era stata suggerita per importare tutte le tabelle da oddsdropping.com

Se ti interessa una tabella particolare allora modifica il loop in
Codice: Seleziona tutto
    Cells.ClearContents              '###

    Set myitm = IE.document.getElementsByTagName("TABLE")(4)     'VEDI NOTA*
'    For Each myitm In myColl
        For Each trtr In myitm.Rows
            For Each tdtd In trtr.Cells
                Cells(i + 1, j + 1) = tdtd.innerText
                Cells(i + 1, 1).Select
                j = j + 1
            Next tdtd
            i = i + 1: j = 0
        Next trtr
    i = i + 2
'    Next myitm
    'SendKeys "{F5}", True
    '        SendKeys "{ENTER}", True
IEQuit:                            '###

Nota*: il numero (4) usato nell'istruzione indica il numero della tabella da leggere; la numerazione comincia da 0 (prima tabella); io ho usato 4, se vuoi un'altra tabella modifica quell'indice.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scarico dati Forebet.com

Postdi apocrimata75 » 19/09/16 18:23

Vorrei capire, se possibile da dove si prende il valore (ID), che sia "Table" o "4" ecc.
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 189
Iscritto il: 28/05/11 13:22

Re: Scarico dati Forebet.com

Postdi Anthony47 » 20/09/16 21:30

Queste informazioni si prendono dal "sorgente html" della pagina che si sta visitando; tutti i Browser su Pc consentono "Tasto dx, Visualizza Sorgente" (che pero' da' il sorgente statico, insufficiente sui siti che usano javascript per compilarsi) oppure "Tasto dx, Analizza elemento" (che da' il reale codice usato al momento).
Nel codice di cui parliamo, nella riga IE.document.getElementsByTagName("TABLE")(4), "4" significa che e' la 5° tabella (la base e' 0) presente nel sorgente; potrei aver contato quanti tag "<Table" c'erano prima di quello di mio interesse, oppure potrei aver importato prima tutte le tabelle e poi sul riepilogo individuato quale era la mia, oppure andare per tentativi fino a trovare l'indice giusto.

Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Scarico dati Forebet.com

Postdi apocrimata75 » 23/09/16 13:37

grazie mille
Windows 7 - Office 2010
apocrimata75
Utente Senior
 
Post: 189
Iscritto il: 28/05/11 13:22


Torna a Applicazioni Office Windows


Topic correlati a "Scarico dati Forebet.com":


Chi c’è in linea

Visitano il forum: Marius44 e 54 ospiti