| | Post: 19 | Registrato il: 12/11/2019
| Età: 28 | Utente Junior | 2003 | | OFFLINE | |
|
27/10/2020 17:14 | |
Importare dati da un sito web! Salve, mi piacerebbe capire in modo abbastanza dettagliato come posso, da un sito web, importare dei dato in un file excel.
Vi spiego nel dettaglio:
Vorrei riportare, sotto forma di testo e numeri, le partite di calcio della Serie A della scorsa stagione.
https://www.diretta.it/serie-a-2019-2020/risultati/
Mi piacerebbe che le partite vengano messe ordinate per giornate.
Vi allego un esempio di come vorrei riportare i dati.
|
|
| | Post: 6.129 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
29/10/2020 10:04 | |
Ciao Andrea, ci sono 2 problemi, il sito non riporta un buon layout per i dati per l'importazione, oltre che non riporta tutte le giornate, ma solo una parte e si deve cliccare sulla pagina per avere le altre giornate.
ma pure la tua versione Excel che è un poco datata e non permette alcune facilitazioni di importazione.
ora vedo cosa posso fare, a te interessa soltanto l'elenco delle giornate con i vari punteggi.
di quale anno in particolare.
Ciao BY Sal (8-D
[Modificato da by sal 29/10/2020 10:04] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 38 | Registrato il: 13/08/2015
| Città: COMO | Età: 60 | Utente Junior | excel 2016 | | OFFLINE |
|
02/11/2020 01:15 | |
Ciao e un saluto a bySal,
il sito che hai indicato non può essere gestito con le Query né con le PowerQuery, inoltre non supporta Internet Explorer, pertanto bisogna usare altri browser, per esempio Chrome o Edge; usando questi browser bisogna utilizzare il Selenium Basic oltre che i Drivers del WebBrowser.
Ottenendo quanto sopra il codice che ti scarica i dati divisi per giornata proprio come li vedi sul sito è il seguente
Sub diretta()
Dim driver As New ChromeDriver
Dim divTag As WebElements
Dim divElement As WebElement
Dim divEvent As WebElement
Dim r As Long
Cells.Clear
driver.Start "Chrome", ""
driver.Get "https://www.diretta.it/serie-a-2019-2020/risultati/"
Set divEvent = driver.FindElementById("live-table", timeout:=4000).FindElementByClass("event")
Set divTag = divEvent.FindElementsByTag("div")
For Each divElement In divTag
DoEvents
If divElement.Attribute("class") Like "*event__titleBox*" Then
r = r + 1
Cells(r, 1) = Replace(divElement.Text, Chr(10), " ")
Cells(r, 1).Font.Bold = True
ElseIf divElement.Attribute("class") Like "*event__round event__round--static*" Then
r = r + 2
Cells(r, 1) = divElement.Text
Cells(r, 1).Font.Bold = True
ElseIf divElement.Attribute("class") Like "*event__participant event__participant--home*" Then
r = r + 1
Cells(r, 1) = divElement.Text
ElseIf divElement.Attribute("class") Like "*event__scores fontBold*" Then
Cells(r, 2) = "'" & Replace(divElement.Text, Chr(10), " ")
ElseIf divElement.Attribute("class") Like "*event__participant event__participant--away*" Then
Cells(r, 3) = divElement.Text
End If
Next
driver.Close
driver.Quit
Set divElement = Nothing
Set divEvent = Nothing
Set divTag = Nothing
Set driver = Nothing
End Sub [Modificato da ges64 02/11/2020 01:16] |
|
02/11/2020 14:48 | |
@ges64
Scusa l'ignoranza, mi sembrava che "da Web" esistono diverse problematiche.
Ho letto diversi "post" che dicevano di "fare alcune cose"? + alcuni Link "non idonei"?
Ti dispiace spiegare (per me & altri), come fai importare i dati (passo/passo, spiegando i vari passaggi nel VBA)?
Devo entrare nel codice "HTML" con quale browser?
Grazie mille [Modificato da ABCDEF@Excel 02/11/2020 14:53] |
| | Post: 39 | Registrato il: 13/08/2015
| Città: COMO | Età: 60 | Utente Junior | excel 2016 | | OFFLINE |
|
02/11/2020 19:46 | |
Ciao ABCDEF@Excel,
si per scaricare i dati dai siti bisogna conoscere bene il linguaggio HTML, bisogna col tasto destro del mouse cliccare nel browser e ispezionare il codice.
Il codice HTML nella sua struttura ad albero contiene tutte le informazioni per estrarre i vari dati.
Ultimanante c'è anche nell'HTML tanto codice Javascript e quindi bisogna conoscere anche questo linguaggio.
Col vba si tirano fuori i vari elementi (Classi, TagName, ecc.) ma spiegarlo se non si conoscono le basi non serve a nulla.
Se si conoscono bene le tecniche tutto quello che è pubblicato può essere disponibile.
[Modificato da ges64 02/11/2020 19:47] |
|
03/11/2020 00:57 | |
Ciao ges64
Conosco un pò HTML, però non sono molto pratico.
Per quanto sappia "visualizzare il codice, OK" con Edge, Crome e Mozilla. Però, presumo che ci siano modi differenti per visualizzare le "tabelle" che ci fanno vedere a monitor.
Se dici che bisogna installare un'altro Brouser (lo farò), ma Tu sapresti spiegarmi come fare (passo-passo, come leggere tale codice) e poi riscriverlo per altri siti? Grazie mille |
| | Post: 40 | Registrato il: 13/08/2015
| Città: COMO | Età: 60 | Utente Junior | excel 2016 | | OFFLINE |
|
03/11/2020 08:19 | |
C'è una guida molto chiara e dettagliata per imparare i passagi iniziali QUI |
|
|