Excel Forum Per condividere esperienze su Microsoft Excel

Problema scraping dati Betexplorer

  • Messaggi
  • OFFLINE
    Ron1978
    Post: 5
    Registrato il: 27/09/2015
    Età: 45
    Utente Junior
    2007
    00 09/06/2021 18:39
    Ciao a tutti,

    sto cercando di estrarre dei dati da questa pagina web https://www.betexplorer.com/results/soccer/?year=2021&month=06&day=01

    In pratica voglio estrarre le date dei match fino alla fine della stringa Text1 determinata dalle variabili InizioEstrazione e FineEstrazione.. Il problema é che quando lancio la macro va in loop ripetendo le righe già trovate

    Questo il codice:

    Public Sub Scraping()

    url1 = "https://www.betexplorer.com/results/soccer/?year=2021&month=06&day=01"

    Set http1 = CreateObject("MSXML2.XMLHTTP")
    http1.Open "POST", url1, False

    http1.send

    While http1.READYSTATE <> 4 'Set 2019 - Aggiunta attesa caricamento pagina
    DoEvents
    Wend

    Text1 = http1.responseText

    InizioEstrazione = InStr(1, Text1, "")

    LunghezzaDataMatch = 1

    ContatoreRiga = 0

    PosizioneCarattereInizioMatch = 1
    PosizioneCarattereFineMatch = 1

    For Contatore = InizioEstrazione To FineEstrazione

    PosizioneInizioDataMatch = InStr(PosizioneInizioDataMatch + LunghezzaDataMatch, Text1, "tr data-dt")
    PosizioneFineDataMatch = InStr(PosizioneFineDataMatch + LunghezzaDataMatch, Text1, "data-def")

    If (PosizioneFineDataMatch + LunghezzaDataMatch) > FineEstrazione Then Exit For

    If PosizioneInizioDataMatch > 0 And PosizioneFineDataMatch > 0 Then

    ContatoreRiga = ContatoreRiga + 1

    LunghezzaDataMatch = Len(Mid(Text1, PosizioneInizioDataMatch, PosizioneFineDataMatch - PosizioneInizioDataMatch))
    Cells(ContatoreRiga, 1) = Mid(Text1, PosizioneInizioDataMatch, PosizioneFineDataMatch - PosizioneInizioDataMatch)
    Cells(ContatoreRiga, 2) = PosizioneInizioDataMatch
    Cells(ContatoreRiga, 3) = PosizioneFineDataMatch

    End If

    Next Contatore

    End Sub

    In allegato il file Excel con la macro.

    Qualcuno mi può aiutare?

    Grazie 😀
  • OFFLINE
    by sal
    Post: 6.399
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 09/06/2021 18:52
    Ciao io ricavo questi dati che sono diversi dai tuoi



    forse non capisco cosa estrarre oppure la pagina

    Ciao By sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    Ron1978
    Post: 5
    Registrato il: 27/09/2015
    Età: 45
    Utente Junior
    2007
    00 09/06/2021 19:25
    Ciao Sal,

    quello che esce quando esegui la macro é questo:



    Il mio problema è che come si vede dall'immagine la macro estrae i dati correttamente fino alla riga 513 ma dopo va in loop e li ripete.. in pratica penso che il problema risieda nel ciclo for next..

    Per curiosità come hai fatto a estrarre i dati nell'immagine ? hai usato una query ?
  • OFFLINE
    by sal
    Post: 6.401
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 10/06/2021 08:30
    Ciao Ron ti ho inserito un elemento di uscita quando sono finite le estrazioni, però controlla con altre date perche può darsi che abbia sbagliato.

    in effetti il tuo ciclo si ripete per ben 657 volte, perche non tiene conto della fine delle estrazioni ma di un altro parametro che non ho voluto cambiare non sapendo a fondo il funzionamento, e se quel parametro sia importante.

    anche perche dalla mia estrazione i tuoi dati non li trovo da nessuna parte, anche nella pagina web non li vedo da nessuna parte.

    si la mia è una query che estrae i dati dalla pagina web, ho usato PowerQuery che non so se è disponibile nella tua versione 2007, credo che sia disponibile dalla 2010 in poi, non ricordo bene.

    Ciao By Sal (8-D
    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui
  • OFFLINE
    by sal
    Post: 6.403
    Registrato il: 14/11/2004
    Utente Master
    Office 2019
    00 10/06/2021 08:35
    Hoops manca il file

    se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui