› Sviluppare funzionalita su Microsoft Office con VBA › Scraber da agcom
-
AutoreArticoli
-
Ciao a tutti, anni fà col Vostro aiuto sono riuscito a creare una Macro, la quale immetteva un numero di telefono in una pagina-web e se questo era valido scriveva i risultati su un foglio Excel. Non funziona più, cambiata la grafica e presumo che abbiano cambiato pure il "nome" dell'elemento.
Errore in .....Doc.getElementById("numerotelefono").Value = Num
Nell'allegato esiste un numero di Tel + la pagina Web
Serve per lavoro. Grazie millePS. Esiste la possibilita di conoscere l'elemento (utilizzando un Browser "posizionato sulla casella", mouse-destro "Analizza proprieta accessibilita") ???
Allegati:
You must be logged in to view attached files.Ho notato che cambiando l'indirizzo WEB da http://www.agcom...... in http://old.agcom..... Funziona nuovamente, spero vivamente di trovare il motivo
Errore in .....Doc.getElementById("numerotelefono").Value = Num
Ti sei risposto da solo... e come chiedi giustamente, bisogna trovare il modo di rintracciare l'elemento dentro la pagina.
In Chrome, F12 >> Tasto destro sull'elemento della pagina web >> Ispeziona
Potrebbe aiutare, immagino.
Ciao vecchio frac
Uso Mozilla + Analizza e presumo che sia la stessa cosa per visualizzare HTML.
L'elemento sembra non sia cambiato = numerotelefono, mà non capisco l'errore dove sia e ....perchè old.agcom funzionaDa https://www.agcom.it/.........
<input id="numerotelefono" class="form_input" name="numerotelefono" type="text" value="123456789" style="box-shadow: none; width: 100% !important;">Da https://old.agcom.it/.........
<input id="numerotelefono" class="form_input" name="numerotelefono" type="text" value="123456789" style="box-shadow: none; width: 100% !important;">Non sono una cima (mettendo il numero manualmente), col VBA è un'errore unico. In HTML, qualche riga sopra c'è >>>form action="https://old.agcom.it/...", presumo che abbiano creato una nuova grafica, reindirizzando alla ex pagina=OLD (dove funziona tutto)
Mi piacerebbe che un'esperto che leggerà il post mi dicesse la Sua opinione.
Un salutoPs. Solo per divertimento questo VBA sul mio allegato (Riferimenti già fatti) per vedere la Gioconda nuda
Sub Casella_Wikipedia() Dim IE As New SHDocVw.InternetExplorer Dim Doc As MSHTML.HTMLDocument With IE .Navigate "https://it.wikipedia.org/wiki/Pagina_principale" .Visible = True Do While .Busy Or .ReadyState <> READYSTATE_COMPLETE DoEvents Loop Set Doc = .Document Doc.getElementById("searchInput").Value = "Gioconda nuda" Doc.getElementById("searchButton").Click '.Quit 'ATTENZIONE.........dovrete chiuderlo IE manualmente End With End SubBuonasera Raffaele53,
l'elemento che ricerchi per inserire il numero di telefono esiste ancora con lo stesso nome ma parte della pagina Web è stata inserita in un frame perciò bisogna gestire la situazione.
Con Selenium passo il controllo al frame e dopo aver eseguito delle istruzioni ritorno al chiamante con il seguente codice:
.SwitchToFrame .FindElementsByTag("iframe")(1) ' sposto il controllo sul frame .FindElementByCss("#numerotelefono").SendKeys "1234" ' inserisco il numero di telefono [...] ' altre istruzioni .SwitchToParentFrame ' ritorno al chiamanteBuona serata ancora.
Ciao maxpit
Vorrei la metà della metà, della metà, della metà del Tuo sapere.
Premessa, 4 anni fà non conoscevo Selenium e mi rendo conto che tra poco tempo scadrà IE. Sempre che l'azienda "APPROVI" l'uso, ieri sera ho preparato una piccola base e mi sono fermato subito al "Click" (non sono esperto), per cortesia (se) puoi aiutarmi. Vorrei specificare che inserendo un numero di telefono, premendo il "cerca", SE non trova nulla = "Non esiste", se invece trova corrispondenze "questi elementi" potrebbero anche essere su due/tre righe. Mi basterebbe che mi dici i nomi degli "elementi" per estrare i dati.Ps. Mi spieghi dove/come hai trovato l'elemento "iframe"? Grazie mille
Allegati:
You must be logged in to view attached files. -
AutoreArticoli
