我需要从this web page获取一些文字。我想用我的计划的交易Feed来分析市场的情绪。
我使用了浏览器控件和get元素命令,但它不起作用。问题是每当我的浏览器开始打开页面时,我都会遇到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
答案 0 :(得分:0)
user1336635,
欢迎来到SO!你可能尝试的是检查他的源代码,找出你想要的字段填充javascript函数(使用firebug - 我认为它是“交易导致利润”旁边的那个),然后将该脚本嵌入到您的webbrowser控件加载的网页。这就是我试图开始的地方。我检查了他的源代码并搜索了“交易导致利润”并没有找到任何导致我相信寻找元素'可能'不可能的东西。只是一个开始的地方,直到有更多经验与这个钟声的人!!最好!
-sf