Visual Basic- und HTML-Agilitätspaket

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

Frage

Ich versuche den Titel der Seite von Yahoo zu ziehen

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

Ich frage Benutzer nach Symbol erstellt die URL: http://finance.yahoo.com/q?s=plug

Das Programm funktioniert großartig, wenn ich eine lokale .html derselben Seite lade ...

Hier ist mein Code:

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

Hat jemand eine Idee, wie ich diese Arbeit bekommen könnte? Ich möchte schließlich Aktienkurse usw. ziehen ...

Ich bin auch auf der Suche nach einem einfacheren Weg, um das zu erreichen, was ich erreichen möchte. Anstatt KeyValuePair etc ... zu verwenden, habe ich endlich eine andere SO Frage bearbeitet.

Vielen Dank.

Beliebte Antwort

Wenn Sie eine Web-URL HtmlWeb , sollten Sie die HtmlWeb Klasse zum Laden der Dokumente verwenden. Die HtmlDocument.Load Methode kann nur aus lokalen Dateien (oder Streams) lesen. Sie sehen wahrscheinlich einen Fehler in den Zeilen "kann nicht von URL lesen" oder "URL nicht unterstützt".

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


Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum