在VB编程中,如何直接读取以html为格式的内容(如:http://news.tom.com/index.html),要求一行一行地读取其信息,然后对其进行分析。

解决方案 »

  1.   

    查一下吧。好像有个控件,IE提供的,可以直接读取html的内容
      

  2.   

    这里有两中方法,个人觉得第一种比较快,而且第二种字体总显示乱码。
    1、利用inet控件
    放一个Internet Transfer Control,一个按纽和两个文本框在窗体上
    text1用来输入网址,text2用来输入暂存的文件名如c:\temp.htm
    然后输入以下代码
    Private Sub Command1_Click()
    Dim B() As Byte
    '取消所有操作
    Inet1.Cancel
    '设定协议为HTTP
    Inet1.Protocol = icHTTP
    '设定URL属性
    Inet1.URL = Text1
    '将读取的HTML数据放进一个byte array
    B() = Inet1.OpenURL(, icByteArray)
    '建立一个暂存文件来存放取回来的html文件
    Open Text2 For Binary Access Write As #1
        Put #1, , B()
    Close #1
    MsgBox "ok"
    End Sub
    2、利用webbrower控件
    和上边放一样的控件,不过把inet改成webbrower控件(引用的时候选internet controls就可以了),另外再加一个timer控件
    然后加入以下代码
    Private Sub Command1_Click()
    WebBrowser1.Navigate Text1
    Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
    Dim Doc, ObjHtml As Object
    Dim StrHtml As String
    Dim B() As Byte
    If Not WebBrowser1.Busy Then
        Set Doc = WebBrowser1.Document
        Set ObjHtml = Doc.body.createtextrange()
        If Not IsNull(ObjHtml) Then
            B() = ObjHtml.htmltext
            Open "c:\temp.htm" For Binary Access Write As #1
                Put #1, , B()
            Close #1
        End If
        Timer1.Enabled = False
        MsgBox "ok"
    End If
    End Sub
    用这种方法,你会发现,webbrower控件中显示出了你打开的网页,呵呵,可以做成浏览器
      

  3.   

    咦,做浏览器不是只要一行代码吗?webbrowser1.navigate("http://www.csdn.net").一打开,广告都弹出来了。。呵呵