从网站获取网址

时间:2017-12-03 09:55:59

标签: vba

我从网站上获取网址时遇到问题: 的 https://searchbzp.uzp.gov.pl/Search.aspx
在这个网站上有一张桌子 文本'Zobacz'是一个超链接,从这个地方我想得到URL。

我可以使用下面的代码点击此网址,然后浏览器尝试打开新标签: IE.Document.getelementbyID("ctl00_ContentPlaceHolder1_ASPxGridView1_DXCBtn0").Click

但我想只获取此网址(无需打开新标签)。 我试图这样的事情,但它不起作用:

Dim a
a = IE.Document.parentWindow.ExecScript("javascript:ctl00_ContentPlaceHolder1_ASPxGridView1_DXCBtn0", "JavaScript")
MsgBox a
a = IE.Document.parentWindow.ExecScript(IE.Document.getElementById("ctl00_ContentPlaceHolder1_ASPxGridView1_DXCBtn0").href, "JavaScript")
MsgBox a

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

昨天查看我对类似问题的回答:http://stackoverflow.com/a/47593832/8112776

如果你只需要获得一个值,它总是位于同一个地方,那么就不需要IE对象了。

下面:

Function GetHTML(url As String) As String
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", url, False
        .Send
        GetHTML = .ResponseText
    End With
End Function


Sub getData()
    Const url = "https://searchbzp.uzp.gov.pl/Search.aspx"
    Const strStart = "ctl00_ContentPlaceHolder1_ASPxGridView1_DXCBtn0""><span>"
    Const strStop = "</span>"

    Dim html As String, pStart As Long, pStop As Long
    html = GetHTML(url)
    pStart = InStr(1, html, strStart) + Len(strStart)
    pStop = InStr(pStart, html, strStop)
    MsgBox Mid(html, pStart, pStop - pStart)
End Sub