Portal    Foro    Buscar    FAQ    Registrarse    Conectarse

Script Para Bajar Una Cita Aleatoria

Script Para Bajar Una Cita Aleatoria
Artículo
Responder citando    Descargar mensaje  
Mensaje Script Para Bajar Una Cita Aleatoria 
 
Hola, me puse a perder el tiempo con esto, en realidad quiero hacer un widget con python, pero mientras hice este script  

#!/usr/bin/env gbs2
'Script que descarga una cita aleatoria de sabidurias.com
USE "gb.net"
USE "gb.pcre"
USE "gb.net.curl"

PRIVATE hCliente AS NEW HttpClient AS "Cliente"
PRIVATE sCita AS String
PRIVATE sAutor AS String


PUBLIC SUB Descargar_Pagina()
  'Establece opciones del objeto de CURL
  hCliente.Close
  hCliente.Async = TRUE
  hCliente.Timeout = 20
  hCliente.URL = "http://www.sabidurias.com/frase-infinita/es"
  hCliente.Get()
  
END

PUBLIC SUB Cliente_Error()
  'Si hubo un error descargando la pagina (de CURL)
  PRINT "No se pudo establecer conexion"
  
END


PUBLIC SUB Cliente_Finished()
  'Se ejecuta cuando se descarga satisfactoriamente la página
  DIM sTexto AS String
  IF Lof(hCliente) THEN
    READ #hCliente, sTexto, Lof(hCliente)
    IF Obtener_Cita(sTexto) THEN
      PRINT "No se pudo obtener la cita"
    ELSE
      PRINT "\"" & Trim(sCita) & "\", " & Trim(sAutor)
    ENDIF
  ELSE
    PRINT "Error: Se descargo una página vacia"
  ENDIF  
  
  
END

PUBLIC FUNCTION Obtener_Cita(sTemp AS String) AS Integer
  'Toma el texto y obtiene la cita con expresiones regulares, devuelve 1 si fallo algo
  DIM rExpresion AS Regexp

  DIM sPatronCita AS String
  DIM sPatronAutor AS String
  
  sPatronCita AS String = "_cita\">([^><]*)</a" 'entre _cita"></a tomar tomar todos los caracteres que no seab un > o un <
  sPatronAutor AS String = "_home\">([^><]*)</a" 'mismo
  
  TRY rExpresion = NEW Regexp(sTemp, sPatronAutor)
  IF ERROR THEN RETURN 1
  IF rExpresion.SubMatches.Count > 0 THEN
    sAutor = rExpresion.SubMatches[1].Text
  ELSE
    RETURN 1
  ENDIF
  
  
  
  TRY rExpresion = NEW Regexp(sTemp, sPatronCita)
  IF ERROR THEN RETURN 1

  WHILE rExpresion.SubMatches.Count > 0 'recorrer el texto y cuando se encuentra parte de la cita borrarlo asi no aparece de nuevo
    
    sCita &= rExpresion.SubMatches[1].Text & " "
    sTemp = Mid(sTemp, rExpresion.Offset + 1 + Len(rExpresion.SubMatches[1].Text))
    rExpresion = NEW Regexp(sTemp, sPatronCita)
    IF ERROR THEN RETURN 1
  WEND
END


PUBLIC SUB Main()
  
  Descargar_Pagina()

END

 


 screenshot



 
Enchufadoo - Ver perfil del usuario Enviar mensaje privado  
Enchufadoo [ Domingo, 04 Marzo 2012, 22:57 ]
 


Script Para Bajar Una Cita Aleatoria
Comentarios
Responder citando    Descargar mensaje  
Mensaje Re: Script Para Bajar Una Cita Aleatoria 
 
Jejejeje, que chido script, gracias!



 
razaAztk - Ver perfil del usuario Enviar mensaje privado  
razaAztk [ Lunes, 05 Marzo 2012, 00:45 ]
Mostrar mensajes anteriores:    
 
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


 



 

cron