Moderatori: Anthony47, Flash30005
Sub DaAGCOM()
'Selenium
Dim WPage As Object
Dim CollA As Object, CollB As Object
Dim myArr, I As Long, LastF As Long, J As Long, K As Long
'
'Crea Driver:
Set WPage = CreateObject("Selenium.WebDriver")
myURL = "https://old.agcom.it/numerazionicallcenter" 'Your url
WPage.Start "chrome", myURL
WPage.Get "/"
WPage.Wait 200
'
Set CollA = WPage.FindElementsByClass("agree-button")
If CollA.Count > 0 Then 'Eventuale pulsante Privacy
CollA(1).Click
WPage.Wait 500
End If
LastF = Cells(Rows.Count, "F").End(xlUp).Row
For I = 2 To LastF
WPage.FindElementsById("numerotelefono")(1).SendKeys (String(20, Chr(8))) 'Clear input
WPage.FindElementsById("numerotelefono")(1).SendKeys (Cells(I, "F")) 'Nuovo numero
Set CollA = WPage.FindElementsByTag("Form")
CollA(2).submit
WPage.Wait 300
Cells(I, "G").Resize(1, 30).ClearContents 'Azzera area risultati
If InStr(1, WPage.FindElementsById("num-risultati")(1).text, "Risultati trovati", vbTextCompare) > 0 Then
myArr = WPage.FindElementsByClass("tab-telefonia-fissa")(1).AsTable.Data 'Legge Tabella esito
For K = 2 To UBound(myArr) 'Gestione multi esiti
Cells(I, "G").Offset(0, 6 * (K - 2)).Resize(1, UBound(myArr, 2)).Value = Application.WorksheetFunction.Index(myArr, K, 0)
Next K
Else
Cells(I, "G") = "Nessun Risultato"
End If
Next I
MsgBox ("Completato...")
WPage.Quit
Set WPage = Nothing
End Sub
Sub Telefoni_Agcom_Selenium()
Dim Cd As New Selenium.EdgeDriver
' Dim Tb As Selenium.WebElements
Dim El As Selenium.WebElement
Dim eTr As Selenium.WebElement
Const myURL As String = "https://www.agcom.it/numerazionicallcenter"
Dim Ur As Long, X As Long, n As Long, Num As String 'String per ex 02.123456789
Ur = Range("F" & Rows.Count).End(xlUp).Row
If X = 1 Then Exit Sub
With Cd
.Start
.SetCapability "ms:edgeOptions", "{""args"":[""--headless""]}"
.Get myURL
.Wait 750
.FindElementsByCss("button.agree-button")(1).Click ' cookies
'-------------------
.SwitchToFrame .FindElementsByTag("iframe")(1) ' mi sposto nel frame
.activeElement.WaitEnabled
For X = 2 To Ur
Num = Cells(X, 6)
.FindElementByCss("#numerotelefono").SendKeys (Chr$(127) & Num) ' inserisco il numero di telefono
On Error Resume Next
Do
.FindElementsByCss(".submit_input")(1).Click
If Err = 0 Then Exit Do
Err.Clear
Loop
On Error GoTo 0
' Set Tb = .FindElementsByCss(".tab-telefonia-fissa")
' n = Tb.Count
For Each eTr In .FindElementsByCss(".tab-telefonia-fissa tr")
If eTr.FindElementsByCss("td").Count Then
Range("L" & X).Value = eTr.FindElementsByCss("td")(6).Text
Range("M" & X).Value = eTr.FindElementsByCss("td")(1).Text
Range("N" & X).Value = eTr.FindElementsByCss("td")(2).Text
'' Range("L" & X).Value = .FindElementsByClass("ng-binding")(3).Attribute("innerText")
'' Range("M" & X).Value = .FindElementsByClass("ng-binding")(2).Attribute("innerText")
'' Range("N" & X).Value = .FindElementsByClass("ng-binding")(1).Attribute("innerText")
End If
Next eTr
Next X
'-------------------
.SwitchToParentFrame ' ritorno al chiamante
End With
End Sub
Raffaele, credo che dipenda da quanto detto qui: viewtopic.php?f=26&t=112225#p661017Errore di run-time '2146232576 (80131700)
Come detto "nuovo.agcom" richiama al suo interno old.agcom:Ps. Ho richiesto una modifica, perchè credo che "old.agcom.it" stia per andare in disuso.
<iframe class="servizio-x-iframe" style="height:388px;" src="https://old.agcom.it/numerazionicallcenter" title="Numerazioni telefoniche"></iframe>
Raffaele53 ha scritto:@maxpit... con Chrome nessun errore ma non estrae dati ...
Torna a Applicazioni Office Windows
Perchè l'importazione dati con Selenium non fuziona? Autore: aggittoriu |
Forum: Applicazioni Office Windows Risposte: 7 |
Prelevare dati da www.forebet.com usando i Driver Selenium Autore: AndreaDeBiagi |
Forum: Applicazioni Office Windows Risposte: 5 |
Importare anche gli url con selenium Autore: aggittoriu |
Forum: Applicazioni Office Windows Risposte: 3 |
Visitano il forum: Nessuno e 19 ospiti