Wrox Programmer Forums
Go Back   Wrox Programmer Forums > Visual Basic > VB 6 Visual Basic 6 > VB How-To
|
VB How-To Ask your "How do I do this with VB?" questions in this forum.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the VB How-To section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old May 12th, 2006, 02:52 AM
Friend of Wrox
 
Join Date: Mar 2005
Posts: 264
Thanks: 0
Thanked 0 Times in 0 Posts
Default problem Extracting Data using HTML Object Library

Hi all i am working on project that needs to extract artistname,albumname,... from a music page. As u see in the pic the artistname and albumname are missing and also albuminfo is placed under incorect column. Could an expert help me fix these problems. I enclused the copy of project and html page.Thanks


pic of the output:
http://i5.photobucket.com/albums/y18...ewproblem2.jpg



[VBCODE]Private Sub Form_Load()
    WebBrowser1.Navigate "c:/page2.html"

End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    If (pDisp Is WebBrowser1.Application) Then
        GetInfo WebBrowser1.Document
    End If
End Sub


Private Sub GetInfo(HTML As HTMLDocument)
    Dim HTMLA As HTMLAnchorElement
    Dim HTMLT As HTMLTable
    Dim HTMLR As HTMLTableRow
    Dim HTMLC As HTMLTableCell
    Dim HTMLI As HTMLInputElement
    Dim pTYPE As Integer
    Dim TMP() As String
    Dim tArtist As String
    Dim LI As ListItem
    For Each HTMLT In HTML.getElementsByTagName("table")
        For Each HTMLR In HTMLT.rows
            For Each HTMLC In HTMLR.cells
                If HTMLC.colSpan = 5 Then
                    tArtist = HTMLC.innerText
                    pTYPE = 1
                End If
                If pTYPE = 1 Then
                    For Each HTMLI In HTMLC.getElementsByTagName("input")
                        If HTMLI.Type = "checkbox" Then
                            Set LI = ListView1.ListItems.Add(, "ID:" & HTMLI.Value, HTMLI.Value)
                        End If
                    Next
                    For Each HTMLA In HTMLC.getElementsByTagName("a")
                        If InStr(HTMLA.onclick, LI.Text) Then
                            LI.ListSubItems.Add , , HTMLA.innerText
                            LI.ListSubItems.Add , , tArtist
                            Exit For
                        End If
                    Next
                Else
                    For Each HTMLA In HTMLC.getElementsByTagName("a")
                        If InStr(HTMLA.href, "WriteLyrics.asp?SongID=") Then
                            TMP = Split(HTMLA.href, "=")
                            If Not LIExists(Replace(TMP(1), "&Singer", "")) Then
                                Set LI = ListView1.ListItems.Add(, "ID:" & Replace(TMP(1), "&Singer", ""), Replace(TMP(1), "&Singer", ""))
                                LI.ListSubItems.Add , , TMP(4)
                                LI.ListSubItems.Add , , Replace(TMP(2), "&Album", "")
                                LI.ListSubItems.Add , , Replace(TMP(3), "&Song", "")
                            End If
                        End If
                    Next
                End If
            Next
        Next
    Next


End Sub
Private Function LIExists(sKEY As String) As Boolean
    On Error GoTo ItsNotThere
    Dim LI2 As ListItem
    Set LI2 = ListView1.ListItems("ID:" & sKEY)
    LIExists = True

    Exit Function
ItsNotThere:
End Function[/VBCODE]


page2.html
Code:


<html>

<table width="400" border="1" cellspacing="0" bordercolor="#9999FF">
  <tr>
    <td colspan="5">artistname album albumname</td>
  </tr>
  <tr>
    <td colspan="5"><div align="left">some sentence here<br><b>Release Year :</b> 2000<br>
  </div></td>
  </tr>
  <tr>
    <th width="35" scope="row">#</th>
    <td width="30" align="center">&nbsp;</td>
    <td width="270" align="center">Song</td>
    <td width="30" align="center">Send</td>
    <td width="35" align="center">Rate</td>
  </tr>
  <tr>
    <td align="center" scope="row">1</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3940"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3940');return false;">songname1
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">2</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3941"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3941');return false;">songname2
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">3</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3942"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3942');return false;">songname3
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">4</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3943"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3943');return false;">songname4
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">5</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3944"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3944');return false;">songname5
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">6</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3945"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3945');return false;">songname6
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">7</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3946"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3946');return false;">songname7
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">8</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3947"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3947');return false;">songname8
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td align="center" scope="row">9</td>
    <td align="center"><INPUT TYPE="Checkbox" NAME="song_id" ONCLICK="reviewSelection();" VALUE="3948"></td>
    <td><a href="#" class="song_title" onclick="loadPlayer('3948');return false;">songname9
</a> </td>
    <td align="center">&nbsp;</td>
    <td align="center">&nbsp;</td>
  </tr>
  <tr>
    <td colspan="5" scope="row" align="center"> 
    <INPUT TYPE="Button" NAME="PlayBtn" VALUE=" Play " ONCLICK="javascript:buildList();">&nbsp;&nbsp; 
    <INPUT TYPE="button" NAME="selectbutton" VALUE="Select All" ONCLICK="javascript:changeAll();"> 
    <input type="hidden" Name="Selection" value="false"> 
  </tr></td>

</table></form>



</html>





Similar Threads
Thread Thread Starter Forum Replies Last Post
problem retrieving data processed by class library maricar C# 0 October 23rd, 2008 10:27 PM
ADO Problem fro extracting excell data mmmhbd ADO.NET 1 May 20th, 2006 02:50 AM
Help extracting dyanamic data from html code method VB How-To 0 May 3rd, 2006 03:00 AM
Extracting COM Object Properties walkins5 General .NET 0 February 5th, 2005 09:34 PM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.