VB读取网页内容
工作需要!有个网页有很多的内容,要读取!首先网页上有很多标题,每个标题对应着相应的网页,要把这个相应的网页内容读出来,怎么做?不知说清楚没!举个例子吧!比如xxx.xxx...
工作需要!有个网页有很多的内容,要读取!
首先网页上有很多标题,每个标题对应着相应的网页,要把这个相应的网页内容读出来,怎么做?不知说清楚没!举个例子吧!
比如xxx.xxx.xxx.xx这是一个网页,这个网页里只显示标题,如:
1,xxxxxxx
2,xxxxx
3xxxx
4xxxx
有很多页,而每个标题又对应相应的网页,这个网页里的内容要把它读出来。要怎么做呢?谢谢!
非常感谢你的回答!可以获取内容,但现在又有新的问题,获取的是整个网页的内容,我只要里面<p>--</p>之间的内容,要怎么弄呢?谢谢! 展开
首先网页上有很多标题,每个标题对应着相应的网页,要把这个相应的网页内容读出来,怎么做?不知说清楚没!举个例子吧!
比如xxx.xxx.xxx.xx这是一个网页,这个网页里只显示标题,如:
1,xxxxxxx
2,xxxxx
3xxxx
4xxxx
有很多页,而每个标题又对应相应的网页,这个网页里的内容要把它读出来。要怎么做呢?谢谢!
非常感谢你的回答!可以获取内容,但现在又有新的问题,获取的是整个网页的内容,我只要里面<p>--</p>之间的内容,要怎么弄呢?谢谢! 展开
1个回答
展开全部
这里有两中方法,个人觉得第一种比较快,而且第二种字体总显示乱码。
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 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
朋友你好,你现在会读HTML了,但是现在要读取指定标签里的内容,比如<p>中的,你可以这样:
放一个WebBrowser(引用部件的Microsoft Internet Controls)
然后复制下面的代码:
Private Sub Form_Load()
WebBrowser1.Navigate2 "那个网页的地址/文件地址"
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标签元素;然后将内容(非HTML,这样过滤H5标签)加入文本框
Next
End Sub
'祝楼主你成功喔!
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 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
朋友你好,你现在会读HTML了,但是现在要读取指定标签里的内容,比如<p>中的,你可以这样:
放一个WebBrowser(引用部件的Microsoft Internet Controls)
然后复制下面的代码:
Private Sub Form_Load()
WebBrowser1.Navigate2 "那个网页的地址/文件地址"
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标签元素;然后将内容(非HTML,这样过滤H5标签)加入文本框
Next
End Sub
'祝楼主你成功喔!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询