Condividi:        

Perchè l'importazione dati con Selenium non fuziona?

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

Perchè l'importazione dati con Selenium non fuziona?

Postdi aggittoriu » 01/01/25 18:42

Buon Anno nuovo a tutti!

Per me, anno nuovo, rogne vecchie.

Mi sapete dire perchè nel file allegato, l'iportazione dati funziona solo di rado? Soprattutto i link in colonna BF non vengono importati quasi mai. Se provo a farlo dal Foglio 3, ho più probabilità che riesca. Ma non mai la certezza.

Ho forse sbagliato qualcosa? Il codice è quello di Anthony, che tranne per un sito particolare, ha sempre funzionato discretamente. Ma avendogli cambiato nome, non ricordo come si chiama il suo.
aggittoriu
Utente Senior
 
Post: 166
Iscritto il: 24/06/14 08:49

Sponsor
 

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi Anthony47 » 02/01/25 01:07

Buon anno

Ma io non ho capito che cosa vorresti fare...
Vedo che scrivi ripetutamente da riga 2 colonna 60 e da riga 2 col 75 (quindi riscrivendo i risultati di nuovi url sopra i vecchi)

Vedo poi che alcune pagine mostrano solo una preview delle tabelle e presentano il comando "Show full table" per presentare invece una tabella piu' polposa.

Insomma tra riscriversi addosso e raccogliere solo una preview delle tabelle non faccio fatica a credere che il risultato sia insoddisfacente.

Partiamo quindi dalla descrizione (che devi fare tu, neh!) di come vuoi raccogliere le tabelle di quella sfilza di url, e spiega per quelli di colonna BF (che mi sembrano quelli che mostrano solo una preview di alcune tabelle) quali tabelle ti interessano
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi aggittoriu » 02/01/25 09:51

Ciao.

Cosa voglio fare? Scaricare dati, archiviarli e analizzarli per fare una simulazione del tipo "se avessi scommesso così, come sarebbe andata?".

Di ogni partita, mi scarico i dati del campionato corrispondente (link in colonna BE), dal quale prelevo i gol fatti e subiti negli ultimi 5, 10, 15 incontri e totali. Quella prewiew neanche mi interessa.
Poi mi scarico i dati del singolo match (link i colonna BF), dal quale prelevo le quote o/u 0.5, 1.5, 2.5 e 3.5. Così posso calcolare quanto avrei vinto se avessi scommesso.

Dopo aver prelevato e archiviato i dati, cancello e passo alla partita successiva. Se il campionato è lo stesso, scarico i dati solo della nuova partita, per non perdere tempo riscaricando i dati del campionato. Nuovo giro, nuova corsa.

Però quasi sempre non funziona lo scarico dei dati. E non capisco perchè. :-?
aggittoriu
Utente Senior
 
Post: 166
Iscritto il: 24/06/14 08:49

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi Anthony47 » 08/01/25 20:28

Le feste sono finite, possiamo tornare al “lavoro”...

Ti avevo scritto che il codice inserito nel file continua a scrivere le nuove informazioni sempre nelle stesse posizioni, e in questo modo le info raccolte da un url vengono sovrascritte (cioe’ cancellate) con le info del secondo url.

In piu’ non avevo capito come gli url in colonna BE (sono 2) e in colonna BF (sono 5) sono correlati tra di loro; ma la tua risposta (msg del 2 gen) non mi ha aiutato

Per andare avanti, non so se nella giusta direzione, ti do il codice di una nuova Sub Dati, in sostituzione di quella da te usata, che consente di scrivere incolonnati (e non sovrascrivere) i dati restituiti da dai vari url
In questo modo dovresti vedere tutti i dati restituiti dai tuoi url, ma (ripeto) non so se sono i dati che ti servono.
Ecco il codice:
Codice: Seleziona tutto
Sub Dati()
Dim myBet As String, myUrl As String
'
If WPage Is Nothing Then
    Set WPage = CreateObject("Selenium.CHRomedriver")
    'Set WPage = CreateObject("Selenium.Webdriver")
End If
'
WPage.Start "chrome"
'WPage.Start "edge"

'Range("E:Z").ClearContents
'
Dim lrH As Long, lrW As Long
'
Columns("BH:BQ").ClearContents
Columns("BW:CE").ClearContents
'
For I = 1 To Range("BD" & Rows.Count).End(xlUp).Row
    If Range("BE" & I) <> "" Then
    '    Columns("BH:BQ").ClearContents
        Range("BH1").Value = Range("AZ" & I).Value
        myUrl = Range("BE" & I)
        Debug.Print "EvvaiA", myUrl, Cells(2 + lrH, 60).Address(0, 0)
        Call GetImpQ(myUrl, 2 + lrH, 60)
    End If
' Columns("BW:CE").ClearContents
    Range("BW1:BY1").Value = Range("BA1:BC1").Offset(I - 1, 0).Value
    myUrl = Range("BF" & I)
    Debug.Print "EvvaiB", myUrl, Cells(2 + lrW, 75).Address(0, 0)
    Call GetImpQ(myUrl, 2 + lrW, 75)
'
'Aggiorna la riga di scrittura:
    lrH = Cells(Rows.Count, "BH").End(xlUp).Row + 2
    lrW = Cells(Rows.Count, "BW").End(xlUp).Row + 2
Next I
'
SQuit:
WPage.Quit
Set WPage = Nothing
Range("BW1").Select
End Sub


Da quanto hai spiegato non mi sono fatto un’idea esatta di quel che dovresti fare; magari con i nuovi dati visualizzati diventa piu’ facile per te dettagliare cosa cerchi....
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi aggittoriu » 09/01/25 00:04

No Anthony. Lascia stare. Non importa. Tanto io sono andato avanti e ho risolto ripetendo lo scarico dei dati, fino a quando non vengono realmente scaricati.

Il mio unico problema era proprio questo. Che con quel codice i dati non vengono quasi mai scaricati. Forse tu non te ne accorgi, perchè non sai quali dati aspettarti. O forse è il mio pc che non lavora bene. Ma in ogni caso, ora va abbastanza bene.

Grazie come al solito. E alla prossima! :)
aggittoriu
Utente Senior
 
Post: 166
Iscritto il: 24/06/14 08:49

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi Anthony47 » 09/01/25 19:12

Se i dati non si presentano sistematicamente, allora prova ad aggiungere all'interno della Sub GetImpQ una "wait" in questa posizione:
Codice: Seleziona tutto
'...
On Error Resume Next
WPage.Get myUrl
WPage.Wait 1000         '<<< AGGIUNTA WAIT
'
myTim = Timer
'...
Avatar utente
Anthony47
Moderatore
 
Post: 19496
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi aggittoriu » 10/01/25 00:40

Ok. Ora è tardi. Provo a guardarmelo domani. Poi ti faccio sapere.
aggittoriu
Utente Senior
 
Post: 166
Iscritto il: 24/06/14 08:49

Re: Perchè l'importazione dati con Selenium non fuziona?

Postdi aggittoriu » 10/01/25 17:07

No Anthony. Ho provato e non va proprio.

Io ora utilizzo dei cicli. Scritti in modo contorto, perchè non li mastico bene. Scarico i dati dell'url in colonna BE e se non mi compare un dato atteso in AX1, riscarico lo stesso url. E così per 10 volte.
Quando trovo il dato richiesto, faccio lo stesso per gli url in colonna BF. Se in AX2 non compare il dato atteso, riscarico e riscarico e riscarico.

Prima o poi riesco a scaricare tutto. Ma se non trovo i dati richiesti, dopo 10 tentativi mollo quegli url e passo agli url della riga successiva.

Così
Codice: Seleziona tutto
Sub Dati2()

Dim myBet As String, myUrl As String

If WPage Is Nothing Then
   
    Set WPage = CreateObject("Selenium.CHRomedriver")
    'Set WPage = CreateObject("Selenium.Webdriver")
End If

WPage.Start "chrome"
'WPage.Start "edge"

    Columns("BN:BN").NumberFormat = "@"

For I = 1 To Range("BD" & Rows.Count).End(xlUp).Row

 If Range("BE" & I) <> "" Then
   
    Columns("BH:BQ").ClearContents
    Range("BH1").Value = Range("AZ" & I).Value

    myUrl = Range("BE" & I)
    Call GetImpQ(myUrl, 2, 60)


For A = 1 To 10
   
    If Range("AX1").Value = 0 Then
   
    Columns("BH:BQ").ClearContents
    Range("BH1").Value = Range("AZ" & I).Value

    myUrl = Range("BE" & I)
    Call GetImpQ(myUrl, 2, 60)

     End If
Next A
  End If
 
     If Range("AX1").Value = 0 Then GoTo Salta

 Columns("BW:CG").ClearContents
 Range("BW1:BY1").Value = Range("BA1:BC1").Offset(I - 1, 0).Value

    myUrl = Range("BF" & I)
    Call GetImpQ(myUrl, 2, 75)
   

For e = 1 To 10

If Range("AX2").Value = 0 Then

    Columns("BW:CG").ClearContents
    Range("BW1:BY1").Value = Range("BA1:BC1").Offset(I - 1, 0).Value

    myUrl = Range("BF" & I)
    Call GetImpQ(myUrl, 2, 75)
End If
Next e

If Range("AX2").Value = 0 Then GoTo Salta




' Bla bla bla, copia qui, incolla là




Salta:

Next I


SQuit:
WPage.Quit

Set WPage = Nothing

End Sub
aggittoriu
Utente Senior
 
Post: 166
Iscritto il: 24/06/14 08:49


Torna a Applicazioni Office Windows


Topic correlati a "Perchè l'importazione dati con Selenium non fuziona?":


Chi c’è in linea

Visitano il forum: Nessuno e 17 ospiti