您好我是VB的新手,目前正在Excel中使用它我遇到了问题我想去网站然后从该网站获取链接然后打印该链接。
我已经知道如何“访问网站并通过getElementsById获取innertext”:
Dim ie As InternetExplorer, doc As HTMLDocument, quote As String
Sub MsgboxTest()
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "http://www.patan77.com/"
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Set doc = ie.document
quote = doc.getElementById("date").innerText
Debug.Print quote
End Sub
这只是从div id获取文本(日期),如果我想要它打印链接,我从页面底部悬停在“其他东西”,然后是来自CinebenchEstimator的实际链接:
IMG:http://www.patan77.com/screenshot/print_link_2.JPG
在这种情况下,我希望它打印出来:http://www.patan77.com/Cinebench_Estimator/Cinebench_Estimator.html
(我只是以我的网站为例来展示我想做的事情)
我猜我需要做这样的事情:
quote = doc.getElementById("mail").getElementsByClassName("menu")(0).getElementsByTagName("ul")(0).getElementsByTagName("li")(0).getElementsByTagName("ul")(0).getElementsByTagName("li")(3).getAttribute("href")
但这显然不起作用,所以我错过了什么/做错了什么?
提前致谢。
(:
答案 0 :(得分:1)
唯一的问题是:
doc.getElementById("mail") _
.getElementsByClassName("menu")(0) _
.getElementsByTagName("ul")(0) _
.getElementsByTagName("li")(0) _
.getElementsByTagName("ul")(0) _
.getElementsByTagName("li")(3)
返回li
元素,该元素没有href
属性。
您想要li
元素的第一个孩子:
doc.getElementById("mail") _
.getElementsByClassName("menu")(0) _
.getElementsByTagName("ul")(0) _
.getElementsByTagName("li")(0) _
.getElementsByTagName("ul")(0) _
.getElementsByTagName("li")(3) _
.Children(0).getAttribute("href")
这将返回href
的{{1}}。在URL基础之前(“http://www.patan77.com/”),您将全部设置。