[Chiuso] Importare dati da tabella sito web

Stato
Chiusa ad ulteriori risposte.

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
20.756
1.713
66
Napoli
2013
400
Cioè a me servirebbe fare tipo il copia/incolla di quella pagina...
Questo si era capito ed è per questo che ti ho linkato il tutorial ma come dice lo stesso Rubik72 @Rubik72

Il WEB SCRAPING è una tecnica informatica di estrazione di dati da un sito web con vari programmi (in questo caso con l';uso del VBA).
Nozioni indispensabili per poter proseguire sono:
  • Conoscenza di base del linguaggio HTML (struttura e principali TAG);
  • Conoscenza delle Collection;
  • Conoscenza dei cicli (For Each .. Next, For .. Next)
Tu possiedi il bagaglio minimo indispensabile per poter proseguire nel tuo intento?

Hai una conoscenza del VBA almeno media?
 

Vasco1985

Nuovo utente
2 Dicembre 2019
13
3
2007
0
No, non ho una conoscenza così avanzata, nemmeno media come dicevi tu... diciamo che ho una conoscenza minima ecco...non credo al livello necessario per fare tutto ciò...
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
21.741
1.733
Como
2011MAC 2016WIN
466
Ciao,
prova con questa macro
Visual Basic:
Sub estrai_dati_web()
    Dim HTMLtab, HTMLcel, HTMLrow, IE As Object
    Dim Doc As Object, y As Integer, x As Long
    Cells.Clear
    Const myURL As String = "https://www.asianbetsoccer.com/it/nextgame.html"
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .navigate myURL
        .Visible = False
        Do While .Busy: DoEvents: Loop
        Do While .readyState <> 4: DoEvents: Loop
    End With
    Set Doc = IE.document
    Set HTMLtab = Doc.getElementsByTagName("table")(1)
    x = 1: y = 1
    For Each HTMLrow In HTMLtab.getElementsByTagName("tr")
        For Each HTMLcel In HTMLrow.getElementsByTagName("td")
            Cells(x, y) = HTMLcel.innerText
            y = y + 1
            If y = 17 Then
                y = 1
                x = x + 1
            End If
        Next HTMLcel
    Next HTMLrow
    IE.Quit
    With Cells
        .EntireColumn.AutoFit
        .EntireRow.AutoFit
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    Range("B:B,F:J,M:N").ColumnWidth = 4
    Set IE = Nothing
    Set Doc = Nothing
End Sub
 
  • Like
Reactions: Rubik72

Vasco1985

Nuovo utente
2 Dicembre 2019
13
3
2007
0
Innanzitutto grazie...
Ho provato a crearla, quando la eseguo mi copia sulla colonna A questo messaggioi:
Diagnostica problemi di connessione
 

Vasco1985

Nuovo utente
2 Dicembre 2019
13
3
2007
0
Potrebbe dipendere da IE ? Quando provo ad aprire il sito li non si apre... e nel debug mi evidenzia questo:
Set IE = CreateObject("InternetExplorer.Application")
 

hichypaul

Nuovo utente
6 Luglio 2015
6
1
39
fi
2013
0
Ciao,
prova con questa macro
Visual Basic:
Sub estrai_dati_web()
    Dim HTMLtab, HTMLcel, HTMLrow, IE As Object
    Dim Doc As Object, y As Integer, x As Long
    Cells.Clear
    Const myURL As String = "https://www.asianbetsoccer.com/it/nextgame.html"
    Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .navigate myURL
        .Visible = False
        Do While .Busy: DoEvents: Loop
        Do While .readyState <> 4: DoEvents: Loop
    End With
    Set Doc = IE.document
    Set HTMLtab = Doc.getElementsByTagName("table")(1)
    x = 1: y = 1
    For Each HTMLrow In HTMLtab.getElementsByTagName("tr")
        For Each HTMLcel In HTMLrow.getElementsByTagName("td")
            Cells(x, y) = HTMLcel.innerText
            y = y + 1
            If y = 17 Then
                y = 1
                x = x + 1
            End If
        Next HTMLcel
    Next HTMLrow
    IE.Quit
    With Cells
        .EntireColumn.AutoFit
        .EntireRow.AutoFit
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
    End With
    Range("B:B,F:J,M:N").ColumnWidth = 4
    Set IE = Nothing
    Set Doc = Nothing
End Sub
ges ho provato in tutti i modo di prendere anche i dati sotto ma niente
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
20.756
1.713
66
Napoli
2013
400
ges @ges

Scusa visto che il debug si ferma sul CreateObject non è che bisogna attivare una qualche libreria (Microsoft Internet Controls)?
 

alfrimpa

VBA Expert
Supermoderatore
Expert
18 Dicembre 2015
20.756
1.713
66
Napoli
2013
400
H @hichypaul

Ti dei accodato ad una discussione di altro utente ( V @Vasco1985 )

Se hai un problema devi aprire una nuova discussione “tua”
 

hichypaul

Nuovo utente
6 Luglio 2015
6
1
39
fi
2013
0
H @hichypaul

Ti dei accodato ad una discussione di altro utente ( V @Vasco1985 )

Se hai un problema devi aprire una nuova discussione “tua”
vedo che cerchiamo la stessa cosa,nn va bene? :(
 

Vasco1985

Nuovo utente
2 Dicembre 2019
13
3
2007
0
Ciao!
Allora, ho provato su un altro pc e scarica i dati correttamente dal sito, sul mio no quindi deduco dipenda da IE il problema.
Seconda cosa, scarica solo una parte di dati, per spiegare meglio allego un'immagine, scarica solo i dati con la freccia rossa nella parte superiore e quelli indicati con la freccia verde sotto non li scarica.

https://ibb.co/ryqBm8D
 

ges

Excel/VBA Expert
Amministratore
Expert
21 Giugno 2015
21.741
1.733
Como
2011MAC 2016WIN
466
Scusa visto che il debug si ferma sul CreateObject non è che bisogna attivare una qualche libreria (Microsoft Internet Controls)?
No Alfredo, l'istruzione CreateObject("InternetExplorer.Application") serve proprio a sostituire l'attivazione manuale di quella libreria.
 
Stato
Chiusa ad ulteriori risposte.

Sostieni ForumExcel

Aiutaci a sostenere le spese e a mantenere online la community attraverso una libera donazione!