Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Leer Datos Desde Una Pagina Web
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Leer Datos Desde Una Pagina Web 
 
Hola. Estoy intentando recuperar información de una pagina web de letras de canciones con el método del foro italiano:
http://www.gambas-it.org/wiki/index..._una_pagina_web
Pero, algo estoy haciendo mal y no solo no funciona sino que el sistema hace "crash".

La pagina es esta:
http://lyrics.wikia.com/wiki/Bersui..._tiempo_no_para

La forma es http://lyrics.wikia.com/wiki/{artista}:{canción}

La canción esta en un div del html que tiene el id:"lyricbox"
 pagina

Y finalmente este es el codigo que uso.

Public mioHttp As New HttpClient As "mioHttp"
Public stringa As String

Public Function ReadLyric(strArtist As String, strSong As String) As String

  Dim strLyric As String
  Dim xmlDoc As New XmlDocument
  Dim xmlLyricBox As New XmlElement
  Dim strDocument As String

  If InStr(strArtist, " ") <> 0 Then
    strArtist = Replace(strArtist, " ", "_")
  Endif

  If InStr(strSong, " ") <> 0 Then
    strSong = Replace(strSong, " ", "_")
  Endif

  With mioHttp
    .URL = "http://lyrics.wikia.com/" & strArtist & ":" & strSong
    .Timeout = 15
    .Get()
  End With

  strDocument = mioHttp.Peek

  xmlDoc.FromString(strDocument)

  xmlLyricBox = xmlDoc.GetElementsByTagName("lyricbox")

  strLyric = xmlLyricBox.TextContent

  Return strLyric

End
 


Por favor si alguno pueda darme algo de información sobre que puedo estar haciendo mal se lo agradeceré.
Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Datos Desde Una Pagina Web 
 
Parece ser que gb.xml puede "parsear" documentos HTML siempre y cuando sean "estándar"... Intente con la página que das pero tiene muchas etiquetas que no son compatibles. Ver hilo: https://sourceforge.net/p/gambas/ma...alk.nabble.com/

gambas aún no tiene un html parser decente. Yo lo que casi siempre hago es usar las funciones de cadenas.

Te adjunto un ejemplo.

Saludos.

gethtmlinfo-0.0.1.tar.gz
Descripción: Simple ejemplo de obtener data de una página web. 
Descargar
Nombre del archivo: gethtmlinfo-0.0.1.tar.gz
Tamaño: 17.63 KB
Descargado: 41 veces
gethtmlinfo-0.0.1.tar.gz
Descripción: Simple ejemplo de obtener data de una página web. 
Descargar
Nombre del archivo: gethtmlinfo-0.0.1.tar.gz
Tamaño: 17.63 KB
Descargado: 41 veces
gethtmlinfo-0.0.1.tar.gz
Descripción: Simple ejemplo de obtener data de una página web. 
Descargar
Nombre del archivo: gethtmlinfo-0.0.1.tar.gz
Tamaño: 17.63 KB
Descargado: 41 veces

 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Datos Desde Una Pagina Web 
 
Tincho:

Te confirmo lo que dice razaAztk, yo lo hago "a pelo" con funciones de cadena.

Una que me sirve mucho es "between", que hizo en su dia Juan Luis Lopez:

PRIVATE FUNCTION Between(Datos AS String, Cadena1 AS String, Cadena2 AS String) AS String
DIM iinf AS Integer
DIM isup AS Integer
iinf = InStr(Datos, Cadena1) + Len(Cadena1)
isup = InStr(Datos, Cadena2, iinf)
RETURN Mid(Datos, iinf, isup - iinf)
END
 


Referencias:
https://foro.gambas-es.org/1-vf5-vt...et+curl&start=0
http://jsbsan.blogspot.com.es/2011/...der-buscar.html
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Leer Datos Desde Una Pagina Web 
 
jsbsan escribió: [Ver mensaje]
Tincho: Te confirmo lo que dice razaAztk, yo lo hago "a pelo" con funciones de cadena.
Una que me sirve mucho es "between", que hizo en su dia Juan Luis Lopez:...

Si, finalmente use este método, y descargue la web con elinks.
Puedes ver el resultado en Vinilo.

No logre descargar la web con el método "italiano" que seria lo suyo ya que hay un componente para eso, pero luego de golpearme la cabeza contra el teclado unas horas lo descarte y use esta función:

' gambas module file
Public strHtml As String
Public Function ReadLyric(strArtist As String, strSong As String) As String
  Dim strBoxBeg As String
  Dim intBoxBeg As Integer
  Dim intBoxEnd As Integer
  Dim strHtmlTmp As String
  Select Msys.PkgStat("elinks")
    Case True
      If InStr(strArtist, " ") <> 0 Then
        strArtist = Replace(strArtist, " ", "_")
        strArtist = MUtility.Capital(strArtist)
      Endif
      If InStr(strSong, " ") <> 0 Then
        strSong = Replace(strSong, " ", "_")
        strSong = MUtility.Capital(strSong)
      Endif
      Shell "elinks http://lyrics.wikia.com/" & strArtist & ":" & strSong & " 2>&1" To strHtmlTmp
      strBoxBeg = "licensing agreement with music Gracenote."
      intBoxBeg = InStr(strHtmlTmp, strBoxBeg) + String.Len(strBoxBeg)
      intBoxEnd = InStr(strHtmlTmp, "   External links", intBoxBeg)
      strHtml = Mid(strHtmlTmp, intBoxBeg, intBoxEnd - intBoxBeg)
      strHtml = Replace(strHtml, "\n\n", "\n")
    Case False
      Select Message.Question(("Tiene que instalar el progrma") & "elinks", "ok", "Instalar", "Omitir")
        Case 1
          '
        Case 2
          Desktop.OpenTerminal
        Case 3
          Settings["Preferences/alarm"] = False
          FMain.bolPkgAlarm = False
      End Select
  End Select
  Return strHtml
End
 


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Como Leer Datos De Una Web? FresyMetal General 7 Viernes, 01 Abril 2011, 21:44 Ver último mensaje
jguardon
No hay nuevos mensajes Desde Que Tipo De Archivo Me Recomendais L... CanihoJR General 4 Jueves, 08 Septiembre 2011, 13:27 Ver último mensaje
ljma
No hay nuevos mensajes Leer Un Arreglo De Datos Desde El Usb Ian General 4 Miercoles, 26 Noviembre 2014, 10:18 Ver último mensaje
jsbsan
No hay nuevos mensajes Leer Y Editar Una Base De Dato Sql Desde A... SafeMango Bases de Datos 4 Martes, 10 Enero 2017, 00:04 Ver último mensaje
SafeMango
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron