Giovanni Limatola
16-05-2019, 18:39
Ciao a tutti ho creato una macro per cercare se una parola c'è all'interno di una pagina web, ho inserito all'interno della colonna A delle url e la macro deve scrivere accanto alle url nella colonna B "ok" se la parola cercata c'è almeno una volta. Il problema è che ad un certo punto i cicli non continuano perché internet Explorer risulta occupato ma non cambia nulla nemmeno dopo ore.
Se invece fermo la macro e la riprendo dal punto nel quale ero rimasto si riprende ma il problema si ripresenta.
Sto usando Windows 10 e Office 2016
Non capisco come risolvere, il codice è questo:
Sub scraping()
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
appIE.Visible = False
Dim cercaUrl As String
cercaUrl = ""
Dim cerca As String
cerca = ""
Dim i As Long
i = Range("A1").Value
Do
cercaUrl = Range("A" & CStr(i)).Value
appIE.navigate cercaUrl
On Error Resume Next 'se la pagina non esiste d? errore
Do While appIE.Busy
DoEvents
Loop
cerca = appIE.document.body.innerHTML
If InStr(cerca, "inglese") <> 0 Then Range("B" & CStr(i)).Value = "ok"
i = i + 1
Range("A1").Value = i
Loop Until i = 1048576
appIE.Quit
Set appIE = Nothing
End Sub
Se invece fermo la macro e la riprendo dal punto nel quale ero rimasto si riprende ma il problema si ripresenta.
Sto usando Windows 10 e Office 2016
Non capisco come risolvere, il codice è questo:
Sub scraping()
Dim appIE As Object
Set appIE = CreateObject("internetexplorer.application")
appIE.Visible = False
Dim cercaUrl As String
cercaUrl = ""
Dim cerca As String
cerca = ""
Dim i As Long
i = Range("A1").Value
Do
cercaUrl = Range("A" & CStr(i)).Value
appIE.navigate cercaUrl
On Error Resume Next 'se la pagina non esiste d? errore
Do While appIE.Busy
DoEvents
Loop
cerca = appIE.document.body.innerHTML
If InStr(cerca, "inglese") <> 0 Then Range("B" & CStr(i)).Value = "ok"
i = i + 1
Range("A1").Value = i
Loop Until i = 1048576
appIE.Quit
Set appIE = Nothing
End Sub