lunes, 9 de septiembre de 2013

Leer una página WEB desde VB

Esto puede ser muy útil para quitar publicidad y esas cosas que no queremos en nuestras páginas... o hasta incluso .. meter publicidad si queremos (me imagino por ejemplo algún cyber.. o lo que se les ocurra)

' Declaraciones a nivel público

Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long

Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hInternetSession As Long, ByVal sURL As String, ByVal sHeaders As String, ByVal lHeadersLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long

Public Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer

Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer

'Nuestras constantes
Public Const IF_FROM_CACHE = &H1000000
Public Const IF_MAKE_PERSISTENT = &H2000000
Public Const IF_NO_CACHE_WRITE = &H4000000
Public Const BUFFER_LEN = 256


' Nuestra función de lectura
Public Function LeeURL(sURL As String) As String
Dim sBuffer As String * BUFFER_LEN, iResult As Integer, sData As String
Dim hInternet As Long, hSession As Long, lReturn As Long

'obtener el identificador de la conexión a Internet actual
hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)

'obtener el identificador de la url
If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)

'si tenemos el identificador, a continuación, iniciar la lectura de la página web
If hInternet Then
    'obtenemos el primer bloque y lo vamos guardando.
    iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
    sData = sBuffer
    'mientras haya más datos los seguimos guardando
    Do While lReturn <> 0
        iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
        sData = sData + Mid(sBuffer, 1, lReturn)
        DoEvents
    Loop
End If

'cerramos la conexión
iResult = InternetCloseHandle(hInternet)
LeeURL = sData
End Function


' Ahora solo la llamamos y podemos guardar en una variable de texto, de ahí la podemos mandar a nuestro objeto de IExplorer o hacer lo que queramos con ello

....
Url = "www.google.com"
CodigoPaginaHTML = LeeURL(Url)
....



No hay comentarios.:

Publicar un comentario

Translate