• home
  • forum
  • my
  • kt
  • download
  • Extracting a web pages source

    Author: 2007-09-06 09:48:27 From:

    The Code

    Call the funtion with the url. remember the http://. The funtions and constants are declarde at the top of your code. I recommend putting this into an easily reuseable module
    Here is the example code:
    Option Explicit
    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
    
    Public Const IF_FROM_CACHE = &H1000000
    Public Const IF_MAKE_PERSISTENT = &H2000000
    Public Const IF_NO_CACHE_WRITE = &H4000000
           
    Private Const BUFFER_LEN = 256
    
    
    Public Function GetUrlSource(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
    
        'get the handle of the current internet connection
        hSession = InternetOpen("vb wininet", 1, vbNullString, vbNullString, 0)
        'get the handle of the url
        If hSession Then hInternet = InternetOpenUrl(hSession, sURL, vbNullString, 0, IF_NO_CACHE_WRITE, 0)
        'if we have the handle, then start reading the web page
        If hInternet Then
            'get the first chunk & buffer it.
            iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
            sData = sBuffer
            'if there's more data then keep reading it into the buffer
            Do While lReturn <> 0
                iResult = InternetReadFile(hInternet, sBuffer, BUFFER_LEN, lReturn)
                sData = sData + Mid(sBuffer, 1, lReturn)
            Loop
        End If
       
        'close the URL
        iResult = InternetCloseHandle(hInternet)
    
        GetUrlSource = sData
    End Function
    

    discuss this topic to forum

    relation tutorial

    No relevant information

    Category

      .NET (8)
      Buttons (3)
      Database Related (7)
      Date and Time (1)
      Development (3)
      Error Handling (2)
      File Manipulation (5)
      Introduction to Visual Basic (9)
      Miscellaneous (2)
      Multimedia (9)
      Networking (9)
      Security (1)
      VB Script (6)

    New

    Hot