Utilisation de HtmlAgilityPack dans VB.Net pour obtenir du texte d'un site Web

html-agility-pack vb.net

Question

Je suis en train d’écrire un programme pour ma petite amie qui lui permet d’ouvrir le programme. Il recueillera automatiquement une citation d’un site Web Horoscope et affichera cette ligne de texte dans une zone de texte.

De ce que j'ai maintenant, il affiche essentiellement le site Web entier en HTML, ce qui n'est pas ce que je veux. Ceci est la ligne HTML que je dois saisir.

<div class="fontdef1" style="padding-right:10px;" id="textline">
"You might have the desire for travel, perhaps to visit a friend who lives far away, Gemini. You may actually set the wheels in motion to make it happen. Social events could take up your time this evening, and you could meet some interesting people. A friend might need a sympathetic ear. Today you're especially sensitive to others, so be prepared to hear a sad story. Otherwise, your day should go well. 
</div>

Le code que j'ai jusqu'à présent est.

Imports System.Net
Imports System.IO
Imports HtmlAgilityPack

Public Class Form1

    Private Function getHTML(ByVal Address As String) As String
        Dim rt As String = ""

        Dim wRequest As WebRequest
        Dim wResponse As WebResponse

        Dim SR As StreamReader

        wRequest = WebRequest.Create(Address)
        wResponse = wRequest.GetResponse

        SR = New StreamReader(wResponse.GetResponseStream)

        rt = SR.ReadToEnd
        SR.Close()

        Return rt
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Label2.Text = Date.Now.ToString("MM/dd/yyyy")
        TextBox1.Text = getHTML("http://my.horoscope.com/astrology/free-daily-horoscope-gemini.html")
    End Sub
End Class

Merci pour toute aide que je peux obtenir. Honnêtement, je ne sais pas du tout où aller avec ce programme. Cela fait 3 jours sans progrès.

Réponse acceptée

Apprenez à XPath ou à LINQ comment extraire certaines informations d’un document HTML à l’aide de HtmlAgilityPack. Voici un exemple d'application de la console utilisant le sélecteur XPath:

Imports System
Imports System.Xml
Imports HtmlAgilityPack

Public Module Module1
    Public Sub Main()
        Dim link As String = "http://my.horoscope.com/astrology/free-daily-horoscope-gemini.html"
        'download page from the link into an HtmlDocument'
        Dim doc As HtmlDocument = New HtmlWeb().Load(link)
        'select <div> having class attribute equals fontdef1'
        Dim div As HtmlNode = doc.DocumentNode.SelectSingleNode("//div[@class='fontdef1']")
        'if the div is found, print the inner text'
        If Not div Is Nothing Then
            Console.WriteLine(div.InnerText.Trim())
        End If
    End Sub
End Module

Dotnetfiddle Demo

sortie:

Vous pourriez avoir envie de voyager, peut-être rendre visite à un ami qui habite loin de chez vous, Gémeaux. Vous pouvez réellement mettre les roues en mouvement pour y arriver. Les événements sociaux pourraient prendre beaucoup de temps ce soir et vous pourriez rencontrer des gens intéressants. Un ami pourrait avoir besoin d'une oreille attentive. Aujourd'hui, vous êtes particulièrement sensible aux autres, alors préparez-vous à entendre une histoire triste. Sinon, votre journée devrait bien se passer.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow