电竞比分网-中国电竞赛事及体育赛事平台

分享

VB讀取網(wǎng)頁(yè)內(nèi)容

 精神360 2018-09-04
有個(gè)網(wǎng)頁(yè)有很多的內(nèi)容,要讀取!首先網(wǎng)頁(yè)上有很多標(biāo)題,每個(gè)標(biāo)題對(duì)應(yīng)著相應(yīng)的網(wǎng)頁(yè),要把這個(gè)相應(yīng)的網(wǎng)頁(yè)內(nèi)容讀出來(lái)!
舉個(gè)例子吧!比如xxx.xxx.xxx.xx這是一個(gè)網(wǎng)頁(yè),這個(gè)網(wǎng)頁(yè)里只顯示標(biāo)題,如:1,xxxxxxx2,xxxxx3xxxx4xxxx有很多頁(yè),而每個(gè)標(biāo)題又對(duì)應(yīng)相應(yīng)的網(wǎng)頁(yè),這個(gè)網(wǎng)頁(yè)里的內(nèi)容要把它讀出來(lái)。要怎么做呢?謝謝!

這里有兩種方法,個(gè)人覺得第一種比較快,而且第二種字體總顯示亂碼。

1、利用inet控件
放一個(gè)Internet Transfer Control,一個(gè)按紐和兩個(gè)文本框在窗體上
text1用來(lái)輸入網(wǎng)址,text2用來(lái)輸入暫存的文件名如c:\temp.htm
然后輸入以下代碼
Private Sub Command1_Click()
Dim B() As Byte
'取消所有操作
Inet1.Cancel
'設(shè)定協(xié)議為HTTP
Inet1.Protocol = icHTTP
'設(shè)定URL屬性
Inet1.URL = Text1
'將讀取的HTML數(shù)據(jù)放進(jìn)一個(gè)byte array
B() = Inet1.OpenURL(, icByteArray)
'建立一個(gè)暫存文件來(lái)存放取回來(lái)的html文件
Open Text2 For Binary Access Write As #1
Put #1, , B()
Close #1
MsgBox "ok"
End Sub

2、利用webbrower控件
和上邊放一樣的控件,不過把inet改成webbrower控件(引用的時(shí)候選internet controls就可以了),另外再加一個(gè)timer控件
然后加入以下代碼
Private Sub Command1_Click()
WebBrowser1.Navigate Text1
Timer1.Enabled = True
End Sub

Private 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

朋友你好,你現(xiàn)在會(huì)讀HTML了,但是現(xiàn)在要讀取指定標(biāo)簽里的內(nèi)容,比如<p>中的,你可以這樣:

放一個(gè)WebBrowser(引用部件的Microsoft Internet Controls)
然后復(fù)制下面的代碼:

Private Sub Form_Load()
     WebBrowser1.Navigate2 "那個(gè)網(wǎng)頁(yè)的地址/文件地址"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
     Dim doc As Object, i
    Set doc = WebBrowser1.Document
    For Each i In doc.getelementsbytagname("p")
        Text1.Text = Text1.Text & " " & i.innertext
        '得到所有p標(biāo)簽元素;然后將內(nèi)容(非HTML,這樣過濾H5標(biāo)簽)加入文本框
    Next
End Sub

==========
網(wǎng)頁(yè)源碼中部分內(nèi)容如下: 
    <tr bgcolor="#e7e7e7">

    <td align="center">發(fā)布日期</td>
    <td align="center">期號(hào)</td>
    <td align="center">開獎(jiǎng)號(hào)碼</td>
    <td align="center">詳情</td>
    </tr>
     
    <tr bgcolor="#FFFFFF">
    <td> 2010-05-19</td>
    <td>10057</td>
    <td>15    17     24    32    35   +  07   09</td> 

要求點(diǎn)擊按鈕自動(dòng)獲取源碼,并且在text1中顯示2010-05-19,在text2中顯示10057,在text3中顯示15  17   24  32  35  07  09
這個(gè)代碼要怎么寫?

需要添加Microsft Internet Transfer control 6.0部件


'
程序例子
'取消所有操作
     Inet1.Cancel


   '設(shè)定協(xié)議為 HTTP
     Inet1.Protocol = icHTTP
    '設(shè)定 URL 屬性
Inet1.URL = " http://www.baidu.com"
     
    '將讀取的 HTML 數(shù)據(jù)附給string1
     string1 = " "
     string1 = Inet1.OpenURL
     MsgBox (string1) 以上是讀取源碼。
?text1.text="2010-05-19"
?text2.text=10057
?text3.text="15  17   24  32  35  07  09"

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多