Я пишу программу для своей подруги, которая позволяет ей открывать программу, и она автоматически соберет ее цитатой с сайта Horoscope и отобразит эту строку текста в TextBox.
По состоянию на то, что у меня есть сейчас, он в основном отображает весь веб-сайт в HTML, чего я не хочу. Это строка HTML, которую мне нужно захватить.
<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>
Код, который у меня есть до сих пор.
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
Спасибо за любую помощь, которую я могу получить. Я честно понятия не имею, где пойти с этой программой сейчас. Прошло 3 дня без прогресса.
Изучите XPath или LINQ, чтобы вытащить определенную информацию из HTML-документа с помощью HtmlAgilityPack. Это пример консольного приложения, в котором используется селектор 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
вывод :
У вас может быть желание путешествовать, возможно, посетить друга, который живет далеко, Близнецы. Вы можете настроить колеса в движении, чтобы это произошло. В этот вечер общественные мероприятия могут занять ваше время, и вы сможете встретить интересных людей. Другу может понадобиться сочувственное ухо. Сегодня вы особенно чувствительны к другим, поэтому будьте готовы услышать печальную историю. В противном случае ваш день должен идти хорошо.