Visual Basic e HTML Agility Pack

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

Domanda

Sto cercando di estrarre il titolo della pagina da yahoo

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

Chiedo all'utente che Symbol crei l'url: http://finance.yahoo.com/q?s=plug

Il programma funziona alla grande quando carico un .html locale della stessa pagina ...

Ecco il mio codice:

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

Qualcuno ha qualche idea su come potrei ottenere questo lavoro? Alla fine voglio tirare i prezzi delle azioni ecc ...

Sono anche giù per l'apprendimento di un modo più semplice per fare ciò che sto cercando di realizzare. Invece di usare KeyValuePair ecc. Solo qualcosa finalmente ho potuto lavorare su un'altra domanda SO.

Grazie.

Risposta popolare

Quando si estrae un URL Web, si dovrebbe utilizzare la classe HtmlWeb per caricare i documenti. Il metodo HtmlDocument.Load può solo leggere da file locali (o flussi). Probabilmente stai vedendo un errore sulla falsariga di "non posso leggere dall'URL" o "url non supportato".

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



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché