有個網(wǎng)頁有很多的內(nèi)容,要讀取!首先網(wǎng)頁上有很多標題,每個標題對應(yīng)著相應(yīng)的網(wǎng)頁,要把這個相應(yīng)的網(wǎng)頁內(nèi)容讀出來!
舉個例子吧!比如xxx.xxx.xxx.xx這是一個網(wǎng)頁,這個網(wǎng)頁里只顯示標題,如:1,xxxxxxx2,xxxxx3xxxx4xxxx有很多頁,而每個標題又對應(yīng)相應(yīng)的網(wǎng)頁,這個網(wǎng)頁里的內(nèi)容要把它讀出來。要怎么做呢?謝謝!
這里有兩種方法,個人覺得第一種比較快,而且第二種字體總顯示亂碼。
1、利用inet控件 放一個Internet Transfer Control,一個按紐和兩個文本框在窗體上 text1用來輸入網(wǎng)址,text2用來輸入暫存的文件名如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ù)放進一個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 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)在會讀HTML了,但是現(xiàn)在要讀取指定標簽里的內(nèi)容,比如<p>中的,你可以這樣:放一個WebBrowser(引用部件的Microsoft Internet Controls)然后復(fù)制下面的代碼:Private Sub Form_Load() WebBrowser1.Navigate2 "那個網(wǎng)頁的地址/文件地址"End SubPrivate 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標簽元素;然后將內(nèi)容(非HTML,這樣過濾H5標簽)加入文本框 NextEnd Sub
==========
網(wǎng)頁源碼中部分內(nèi)容如下:
<tr bgcolor="#e7e7e7">
<td align="center">發(fā)布日期</td>
<td align="center">期號</td>
<td align="center">開獎號碼</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>
要求點擊按鈕自動獲取源碼,并且在text1中顯示2010-05-19,在text2中顯示10057,在text3中顯示15 17 24 32 35 07 09
這個代碼要怎么寫?
需要添加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"
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。