Trucos 22 de Noviembre del 2006 06:00 am
Obtener una versión “solo texto” de una página web
Bueno, en esta ocasión les presento una función que permite obtener el texto de una página web, sin el html de la misma, no tiene formato.
El uso es sencillo, el siguiente ejemplo muestra en la pantalla de VFP, la versión solo texto de “Google”.
?GetPageasTxt("http://google.com")
Otro Ejemplo, sería grabarlo a un archivo de texto:
=Strtofile(GetPageasTxt("http://google.com"), "c:/google.txt",0)
El código de función a continuación:
Function GetPageasTxt(cUrl As String) As String
Local Texto, oIE, cResult, oDoc
oIE = Createobject("InternetExplorer.Application")
oIE.Navigate2("about:blank")
oIE.Navigate2(cUrl)
Texto ="Procesando página"
Do While oIE.busy
Wait Window Texto Nowait
Enddo
Wait Window Texto Timeout 1.5
*^para forzar a que IE termine de cargar la página
oDoc = oIE.Document
Texto = Type("oDoc.body")
= oDoc.body.innerText()
cResult = oDoc.body.innerText()
Wait Clear
oDoc = .Null.
Release oDoc
oIE.Quit
Release oIE
Return cResult
Endfunc
Como mención sobre su código, solo basta decir que usa Internet Explorer, para obtener la versión solo texto del mismo, y en mi máquina es necesario tener el Wait Window Texto timeout 1.5 debido a que de lo contrario devuelve una cadena vacía.
Saludos y hasta la próxima.
on 08 Jun 2007 at 22:12 1.Flavio Moreno
dijo …
Me parece interesante, aunque te confieso que todavía no veo en que circunstancias usarlo. Pero te agradezco este artículo. Lo que también sucede es que cuando conoces el objeto Ole de Internet Explorer, ves las cosas mas sencillas.
on 09 Jun 2007 at 12:01 2.Jorge Mota
dijo …
Hola, no se a que te refieres con el objeto OLE, es el activeX del IE ?, primero pense en crearlo así, pero me di cuenta que para funciones que no requiera un navegador, es más sencillo una función que puedes llamar de cualquier lado.
Gracias por la visita
on 12 Nov 2007 at 2:13 3.Pedro Escate
dijo …
Hola, muy interesante, pero como seria la version para Mozilla Firefox?..
estuve intentando pero dicen que no es un com server y por eso no puede usar el createobject….
on 12 Nov 2007 at 9:24 4.Jorge Mota
dijo …
Pues lastimosamente creo que con firefox no se puede, o al menos no sé que exista ninguna forma de crear interfáces vía programación
on 06 Jul 2008 at 5:07 5.oscar dijo …
necesito una cosa como esta pero para firefox…
on 06 Jul 2008 at 23:25 6.Jorge Mota
dijo …
Firefox no permite automatización, pero por que no usar la versión con IE? Firefox no tiene ese tipo de programación que sí permite IE, si no quieres usar el navegador, podrías intentar con el objeto OLE de Ie que viene en las FFC