【发布时间】:2018-03-30 23:39:36
【问题描述】:
我对 VBA 和 Webscraping 非常陌生。我正在尝试打开 XML 文档中的 URL。
http://research.investors.com/services/AutoSuggest.asmx/GetQuoteResults?q=txn&limit=10
InnerText 给了我 URL,但包括 <Url> 和 </Url>。
<Url>http://research.investors.com/stock-quotes/nasdaq-apple-inc-aapl.htm</Url>
这就是为什么我无法打开 URL。 这是我的代码:
Sub Macro1()
Dim ie As Object
Set Rng = Range("A3:A6")
Set Row = Range(Rng.Offset(1, 0), Rng.Offset(1, 0).End(xlDown))
Set ie = CreateObject("InternetExplorer.Application")
With ie
.Visible = True
For Each Row In Rng
.navigate "research.investors.com/services/AutoSuggest.asmx/GetQuoteResults?q=" & Range("A" & Row.Row).Value & "&limit=10"
Application.Wait (Now + TimeValue("0:00:02"))
Do
DoEvents
Loop Until ie.readyState = READYSTATE_COMPLETE
Dim doc As HTMLDocument
Set doc = ie.document
While ie.readyState <> 4
Wend
.navigate doc.getElementsByTagName("Url")(0).innerText
Next Row
End With
ie.Quit
End Sub
我希望有人能指出我做错了什么。
非常感谢,再见 夜航
【问题讨论】:
-
如果它是一个 XML 文档,您应该将其真正解析为 XML,而不是 HTML。 "Url" 不是一个有效的 HTML 标签(虽然它似乎是通过 getelementsbytagname 找到的),所以也许 IE 不知道如何渲染 innerhtml...
-
注意:您的代码有一些不一致之处。你有一个
with ie块,但你在块内引用ie3 次。只需放弃使用with块并使用ie.visible ..和ie.navigate ..