我需要从此网页获取一些文本。我想为我的程序使用交易源来分析市场情绪。
我使用了浏览器控件和 get element 命令,但它不起作用。问题是每当我的浏览器开始打开页面时,我都会收到 Java 脚本错误。
我尝试使用 DOM,但似乎我不太明白我需要做什么:) 这是代码:
Dim code As String
Using client As New WebClient
code = client.DownloadString("http://openbook.etoro.com/ahanit/#/profile/Trades/")
End Using
Dim htmlDocument As IHTMLDocument2 = New HTMLDocument(code)
htmlDocument.write(htmlDocument)
Dim allElements As IHTMLElementCollection = htmlDocument.body.all
Dim allid As IHTMLElementCollection = allElements.tags("id")
Dim element As IHTMLElement
For Each element In allid
element.title = element.innerText
MsgBox(element.innerText)
Next
更新:所以我尝试了 HTML Agility 包,正如评论中所建议的那样,我再次被困在这段代码上
Dim plain As String = String.Empty
Dim htmldoc As New HtmlAgilityPack.HtmlDocument
htmldoc.LoadHtml("http://openbook.etoro.com/ahanit/#/profile/Trades/")
Dim goodnods As HtmlAgilityPack.HtmlNodeCollection = htmldoc.DocumentNode.SelectNodes("THE PROBLEM")
For Each node In goodnods
TextBox1.Text = htmldoc.DocumentNode.InnerText
Next
有什么建议吗?
好的,我想我知道问题出在哪里,我需要的 div 被隐藏了,当我只加载源代码时,它没有加载。有人知道如何加载所有隐藏的 div 吗?
这是我的新代码
Dim doc As New HtmlAgilityPack.HtmlDocument
Dim web As New HtmlWeb
doc = web.Load("http://openbook.etoro.com/ahanit/#/profile/Trades/")
Dim nodes As HtmlNode = doc.GetElementbyId("feed-items")
Dim id As String = nodes.WriteTo()
TextBox1.Text = TextBox1.Text & vbCrLf & id