|
有個(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" |
|
|