Condividi:        

Dati da web

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

Dati da web

Postdi Statix » 03/04/21 22:32

Ciao Anthony47,
come capita spesso il sito cambia qualcosa e non funziona bene la macro,
in questa macro ho modificato input della data e va bene mentre con il tasto VAI non ci sono riuscito,
quindi ti chiedo gentilmente se potevi sistemarla, grazie
Codice: Seleziona tutto
Dim IE As Object, myOk As Boolean        '<<< Rigorosamente in testa al Modulo
Sub TabImport2()
'
Dim I As Long, J As Long, dArr(1 To 55)
Application.ScreenUpdating = False
Sheets("NewArchivio").Activate
'Range("Q2:BT50").ClearContents          '<<< Azzera l'area dei risultati
'Range("R:BU").NumberFormat = "@"

For J = Range("A1") To Range("B1")

'For J = 2 To I - 1
    If IE Is Nothing Then Set IE = CreateObject("InternetExplorer.Application")
    With IE
        .navigate "https://www.lottomaticaitalia.it/it/prodotti/lotto/estrazioni"
        .Visible = True
        Do While .Busy: DoEvents: Loop    'Attesa not busy
        Do While .ReadyState <> 4: DoEvents: Loop 'Attesa documento
    End With
'Compila date:
    Set mycoll = IE.document.getelementsbytagname("input")
       
        'mycoll(0).Click
        mycoll(0).Value = Format(J, " dd/mm/yyyy")
   
    Application.Wait (Now + TimeValue("0:00:03"))
   
    mycoll(1).Click
    Application.Wait (Now + TimeValue("0:00:02"))
'    Cells(Rows.Count, "R").End(xlUp).Offset(2, 1).Value = dArr(J)
    myOk = False
   
    Call GetWTableCommon2(J)
   
    If myOk Then Cells.Item(Rows.Count, 3).End(xlUp).Offset(0, -1) = Format(J, "dd/mm/yyyy")
   

Next J

'
IE.Quit
Set IE = Nothing
'Call Record
Range("A1").Select

MsgBox ("Completato...")

End Sub

Sub GetWTableCommon2(ByVal Dummy)
Dim myI As Long, myItm As Object, aAa, bBb, myJ As Long, TdTd, tRtR
'Application.ScreenUpdating = False
'Scaricare le tabelle:
Set mycoll = IE.document.getelementsbytagname("tbody")
'
myJ = 2 '17 '17=R-1
myI = Cells.Item(Rows.Count, myJ).End(xlUp).Row
mylbody = IE.document.getelementsbytagname("body")(0).innerText
If InStr(1, mylbody, " " & Format(Dummy, "d mmmm yyyy"), vbTextCompare) > 0 Then
For Each myItm In mycoll
For Each tRtR In myItm.getelementsbytagname("tr")
For Each TdTd In tRtR.getelementsbytagname("td")
 If TdTd.classname = "center ng-binding ng-scope" Or TdTd.classname = "center ng-binding ng-scope blu" Then   'INSERIRE
'If TdTd.classname = "center ng-binding ng-scope" Then   'INSERIRE

'If TdTd.classname <> "ng-binding" Then 'If AGGIUNTO
Cells(myI + 1, myJ + 1) = TdTd.innerText
myJ = myJ + 1
End If
Next TdTd
'            myI = myI + 1: myJ = 0
Next tRtR
'        myI = myI + 1
Exit For
Next myItm
myOk = True
End If
'
'Range("B:BE").WrapText = False ' Adattare il range se <>R:BU
'< Fine importazione tabelle
'
'Stop
]



Sheets("NewArchivio")

In cella A1 01/04/2021
in cella B1 03/04/2021
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Sponsor
 

Re: Dati da web

Postdi Anthony47 » 05/04/21 17:13

in questa macro ho modificato input della data e va bene mentre con il tasto VAI non ci sono riuscito, quindi ti chiedo gentilmente se potevi sistemarla, grazie

Ma io non sono uno stregone, quindi avrei bisogno di sapere che cosa dovrebbe fare la macro e che cos'e' "il tasto VAI"
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Dati da web

Postdi Statix » 05/04/21 17:57

Ciao Anthony47

la macro postata funzionava perfettamente, adesso non più in quanto hanno spostato ,
l'input della data che ho corretto con
Codice: Seleziona tutto
mycoll(0).Value = Format(J, "dd/mm/yyyy")


mentre il Mycoll(1) non funziona nel senso che una volta messa la data il tasto con la scritta VAI
dovrebbe ricaricare l'estrazione della data di input ,c'è da modificare solo questo tasto,
da inizio i mycoll erano (13) (14) ok
poi sono passati a (1) (2) ok
adesso (0) (1) No ok
ho provato finora senza risolvere questa è l'elemento
Codice: Seleziona tutto
<input name="commit" value="VAI" type="submit" class="btn btn-primary" ng-click="reloadTable()" ng-disabled="!enableSearch" disabled="disabled">
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Dati da web

Postdi Statix » 05/04/21 18:04

ti allego file test, premendo il tasto lottomatica la macro dovrebbe memorizzare le 3 ultime estrazioni,
invece memorizza solo l'ultima.

http://www.filedropper.com/test_2546
Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Dati da web

Postdi Anthony47 » 06/04/21 15:34

Mi sa che siamo al capolinea...
Nel sito quell'inputbox in realta' serve solo per visualizzare la data scelta tramite un "datepicker" che pero' non viene esposto nel codice html; e' il click sulle celle del datepicker che popola l'inputbox e che informa il server di quale estrazione sia stata selezionata, oltre che rimuovere quell'attributo disabled="disabled" al pulsante VAI.

Al momento non ho trovato un modo per interagire su questo componente, quindi non sono in grado di offrire alcun suggerimento.
Provero' ancora con il poco affidabile SendKeys, ma le prove sin qui fatte sono state insoddisfacenti; insomma e' altamente probabile che tu debba trovare un altro canale per la lettura di queste informazioni.

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

Re: Dati da web

Postdi Statix » 06/04/21 17:25

Statix
Windows 10,
Office 2013,
Statix
Utente Senior
 
Post: 1287
Iscritto il: 12/05/06 21:55
Località: Provincia di Caserta

Re: Dati da web

Postdi Anthony47 » 06/04/21 18:46

Provero', ma in prima battuta mi sembra che l'item abbia le stesse caratteristiche e la stessa funzione:
Codice: Seleziona tutto
<input type="text" name="date" class="form-control ltm-datepicker__input dropdown-toggle" ..... ng-readonly="true" ..... readonly="readonly" ...>


Ciao

Edit: Nulla da fare, il sito non supporta InternetExplorer, quindi non e' accessibile tramite le librerie integrate nel vba
Avatar utente
Anthony47
Moderatore
 
Post: 19181
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "Dati da web":


Chi c’è in linea

Visitano il forum: Nessuno e 20 ospiti