0

我需要从此网页获取一些文本。我想为我的程序使用交易源来分析市场情绪。

我使用了浏览器控件和 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
4

1 回答 1

0

用户1336635,

欢迎来到 SO!您可能会尝试查看他的源代码,找出填充您想要的字段的javascript函数(使用firebug - 我假设它旁边是“交易导致利润”的那个),然后将该脚本嵌入到您的网络浏览器控件加载的网页。那就是我尝试开始的地方。我检查了他的源代码并搜索了“交易导致利润”,但没有找到任何让我相信寻找“可能”元素是不可能的东西。只是一个起点,直到有更多经验的人加入!最好的!

-sf

于 2012-04-16T15:45:34.953 回答