加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB 如何提取网页源带码中的url链接,动态添加控件实例

发布时间:2020-12-16 22:58:09 所属栏目:大数据 来源:网络整理
导读:本人进行了简单修改,其提取链接的技术并不完美,无法处理复杂情况。着重学习其动态添加控件、为新控件添加事件处理的方法 新建一个工程,在Form1中添加如下代码 Function BytesToBstr(body,Cset) Dim objstream Set objstream = CreateObject("adodb.stream

本人进行了简单修改,其提取链接的技术并不完美,无法处理复杂情况。着重学习其动态添加控件、为新控件添加事件处理的方法

新建一个工程,在Form1中添加如下代码

Function BytesToBstr(body,Cset)
Dim objstream
Set objstream = CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode = 3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
Set objstream = Nothing
End Function

Function getHTTPPage(Url)
Dim Http
Set Http = CreateObject("MSXML2.XMLHTTP")
Http.Open "GET",Url,False
a = Http.send()
If Http.readystate <> 4 Then
Exit Function
End If
getHTTPPage = BytesToBstr(Http.responseBody,"GB2312")
Set Http = Nothing
If Err.Number <> 0 Then Err.Clear
End Function

Private Sub Form_Load()
Dim Url,tempStr As String
Dim a() As String
Dim Label() As Object '标签控件对象数组
Dim clsT() As New Class1 '对象数组
Url = InputBox("请输入一个网址") '输入对话框
a = Split(getHTTPPage(Url),"href=") '获取页面源代码,并提取href
Dim i As Integer
Dim nTop As Long '标签位置,上距
ReDim Label(UBound(a) - 1) '重设动态数组大小
ReDim clsT(UBound(a) - 1) '重设动态数组大小
For i = 1 To UBound(a) - 1
Set Label(i) = Controls.Add("VB.Label","Label" & CStr(i)) '动态创建标签控件,CStr把i转换成字符串类型
Label(i).Height = 300
Label(i).Top = nTop
Label(i).Visible = True
tempStr = Split(a(i),">")(0) '<a> 标签的结束
tempStr = Replace(tempStr,CStr(Chr(34)),"") '去除两边双引号
If Left(tempStr,4) <> "http" Then tempStr = Url & tempStr '左边没有http则可能是相对链接
If InStr(tempStr," ") Then tempStr = Split(tempStr," ")(0) '用空格分离URL
Label(i).Caption = tempStr
Label(i).AutoSize = True
nTop = nTop + 30 * 8
clsT(i).Init Label(i) '标签类
Next i
End Sub

然后新建一个类模块class1加入以下代码:
Option Explicit
Dim WithEvents L As Label
Public Sub Init(tmp As Label)
Set L = tmp
End Sub
Private Sub L_Click()
Shell "C:/Program Files/Internet Explorer/iexplore.exe " & L.Caption
End Sub
运行程序

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读