vb 获取网页指定内容,求代码

2024-11-17 09:54:27
推荐回答(3个)
回答(1):

我用如下代码测试了。说明你要找的元素不存在。代码应该没问题
Private Sub Command1_Click()
Text1.Text = WebBrowser1.Document.getElementsByName("key")(0).Value

End Sub

Private Sub Form_Load()
WebBrowser1.Navigate "http://www.yt969.com/"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
Text1.Text = WebBrowser1.Document.getElementsByName("key")(0).Value
End Sub

推荐用下面的方法,先获取源码,在做字符串分析。

Function GetHttpPage(GetUrl)
    Dim xmlHttp
    Set xmlHttp = CreateObject("MSXML2.serverXMLHTTP.6.0")
    xmlHttp.Open "GET", GetUrl, False
    xmlHttp.setTimeouts 10000, 10000, 10000, 10000
    '第一个数值: 解析DNS名字的超时时间10秒
    '第二个数值: 建立Winsock连接的超时时间10秒
    '第三个数值: 发送数据的超时时间15秒
    '第四个数值: 接收response的超时时间15秒
    'xmlHttp.setRequestHeader "Cookie", Cookie
    On Error Resume Next
    xmlHttp.send
    If Err.Number = -2147012894 Then
        GetHttpPage = "$False$"
        Exit Function
    End If
    If xmlHttp.readystate <> 4 Then
        Set xmlHttp = Nothing
        GetHttpPage = "$False$"
        Exit Function
    End If
    GetHttpPage = BytesToBstr(xmlHttp.responseBody, "utf-8")
    Set xmlHttp = Nothing
End Function

Public 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

回答(2):

获取源代码即可

回答(3):

你判断对象存在不存在就行了。