Italian estrarre codice html da pagina web

ivanomonti

Expert
Licensed User
Longtime User
come da titolo devo leggere il codice html di una pagina per poi fare un parse, la pagina non ha parametri da inviare esempio www.ivanomonti.eu carico e leggo html puro.

Chi mi rinfresca la memoria.
 

ivanomonti

Expert
Licensed User
Longtime User
no non ho risolto, ma come si fa e ricevere html di una pagina web caxx non sono riuscito provando di tutto.
 

djveleno

Active Member
Licensed User
Longtime User
Importare dati da una pagina html non è semplice affatto, da siti esterni e non di proprietà si possono importare dati solo in presenza di un iFrame che isola in parte il codice html rendendolo in qualche modo più leggibile e copiabile, nel caso del WinForLife è meglio cercare un servizio esterno, come ad esempio uno dei tanti siti che forniscono risorse per webmaster, che dia la possibilità di avere del codice racchiuso in un iFrame.
 

holdemadvantage

Active Member
Licensed User
Longtime User

holdemadvantage

Active Member
Licensed User
Longtime User
in pratica aggiungi nel tab di destra la libreria httputils2 e usa il codice seguente

B4X:
Sub Activity_Create(FirstTime As Boolean)
  Dim job3 As HttpJob
 
  job3.Initialize("Job3", Me)
  job3.Download("http://www.ivanomonti.eu")
End Sub

Sub JobDone (Job As HttpJob)
  Log("JobName = " & Job.JobName & ", Success = " & Job.Success)
  If Job.Success = True Then
      Select Job.JobName
       
        Case "Job3"
dim stringa1 asstring 
stringa1=job.getstring 

msgbox(stringa1,"")
      End Select
  Else
      Log("Error: " & Job.ErrorMessage)
      ToastMessageShow("Error: " & Job.ErrorMessage, True)
  End If
  Job.Release
End Sub
 

ivanomonti

Expert
Licensed User
Longtime User
Grazie ragazzi, sono arrivato a quello che desideravo grazie a voi, molti problemi erano derivanti da me che non capivo alcune cose, ora ho risolto e sono arrivato alla fine, ma questa cosa mi ha impegnato un botto di ore azzarola.

Grazie di nuovo a tutti voi.

B4X:
Sub request_Click
    Try
        hc.Initialize("hc")
        Dim req As HttpRequest
        req.InitializePost2(http://www.tuapagina.com, "".GetBytes("UTF8"))
        hc.Execute(req, 1)
        ProgressDialogShow("Attendi ultime estrazioni... ")
    Catch
        ToastMessageShow("Errore di Connessione...", True)
    End Try
End Sub

Oggi il metodo Response.getString("UTF8") e deprecato e pertanto bisogna salvare i dati in un file esterno per poi rileggerlo con altro Task.
B4X:
Sub hc_ResponseSuccess (Response As HttpResponse, TaskId As Int)
    ProgressDialogHide
    Try
        If File.Exists(File.DirRootExternal,"html.txt") = False Then
            File.WriteString(File.DirRootExternal, "html.txt", "Numeber WinForLife by Ivano Monti")
        End If
        If Response <> Null Then
            Response.GetAsynchronously("filtra",File.OpenOutput(File.DirRootExternal, "html.txt", False) , True, TaskId)
          Else
            ToastMessageShow ("Risposta dal server vuota", True)
          End If
    Catch
      ToastMessageShow ("Errore non gestito.", True)
      End Try
End Sub

B4X:
Sub filtra_StreamFinish(Success As Boolean, TaskId As Int)
   
    Dim html As String
    html = File.GetText(File.DirRootExternal, "html.txt")
    ToastMessageShow(html,True)
   
End Sub
 
Last edited:
Top