Visual Basic和HTML Agility Pack

html-agility-pack vb.net visual-studio-2012

我試圖從雅虎拉出頁面的標題

http://finance.yahoo.com/q?s=plug

我問用戶Symbol是否創建了URL: http//finance.yahoo.com/q?s = plug

當我加載同一頁面的本地.html時,該程序運行良好...

這是我的代碼:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim symbol As String, htmldoc As New HtmlDocument
    symbol = TextBox3.Text
    htmldoc.Load("http://finance.yahoo.com/q?s=plug")
    Dim items = htmldoc.DocumentNode.SelectNodes("//head/title").Select(Function(node) New KeyValuePair(Of String, String)(node.InnerText, node.InnerText))

    For Each item As KeyValuePair(Of String, String) In items
        Console.WriteLine(item.Key)
        Console.WriteLine(item.Value)
    Next

End Sub

任何人都知道如何才能完成這項工作?我最終想拉股價等...

我也想學習一種更簡單的方法去做我想要完成的事情。而不是使用KeyValuePair等...只是我最終在另一個SO問題上工作的東西。

謝謝。

熱門答案

在提取Web網址時,您應該使用HtmlWeb類來加載文檔。 HtmlDocument.Load方法只能從本地文件(或流)讀取。您可能會看到“無法從網址讀取”或“網址不受支持”的錯誤。

Dim url = "http://finance.yahoo.com/q?s=plug"
Dim web = new HtmlWeb
Dim doc = web.Load(url)
Dim titleNode = doc.DocumentNode.SelectSingleNode("/html/head/title")
Dim title As String
If titleNode IsNot Nothing Then
    title = titleNode.InnerText
End If



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因