来自网页的文字

时间:2012-04-16 15:21:57

标签: vb.net

我需要从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

1 个答案:

答案 0 :(得分:0)

user1336635,

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

-sf