Pack d'agilité Visual Basic et HTML

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

Question

J'essaie de tirer le titre de la page de Yahoo

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

Je demande à l'utilisateur pour le symbole est crée l'URL: http://finance.yahoo.com/q?s=plug

Le programme fonctionne très bien lorsque je charge un fichier .html local de la même page ...

Voici mon 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

Quelqu'un a une idée sur la façon dont je pourrais obtenir ce travail? Je veux éventuellement tirer les cours des actions, etc.

Je suis également en bas pour apprendre un moyen plus facile de faire ce que j'essaye d'accomplir. Au lieu d'utiliser KeyValuePair, etc.… C'est quelque chose qui m'a finalement permis de travailler sur une autre question SO.

Merci.

Réponse populaire

Lorsque vous tirez une URL Web, vous devriez utiliser la classe HtmlWeb pour charger les documents. La méthode HtmlDocument.Load peut uniquement lire à partir de fichiers locaux (ou de flux). Vous constatez probablement une erreur du type "impossible de lire l'URL" ou "URL non prise en charge".

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


Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi