Hilfe Beim Website auslesen!

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von big-d.

    Hilfe Beim Website auslesen!

    Hallo!
    Ich möchte mit VB eine Website auslesen.
    Ich habe hier und in Google schon gesuch, aber nichts passendes gefunden.

    Also. Ich habe mit folgendem Code den (kompletten (?) ) Quuelltext einer Website ausgelesen:

    VB.NET-Quellcode

    1. Dim Request1 As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://gogogo.web.de")
    2. Dim Response1 As System.Net.HttpWebResponse = Request1.GetResponse
    3. Dim strm1 As System.IO.Stream = Response1.GetResponseStream()
    4. Dim Reader1 As New System.IO.StreamReader(strm1)
    5. Dim QT As String = Reader1.ReadLine

    Der Quelltext ist etwa so:

    HTML-Quellcode

    1. True<br />
    2. 22.01.2011 12:31:10<br />
    3. Bla


    Wie kann ich jede zeile einzeln (ohne <br/>) in Variablen speichern?

    Gruß,
    big-d
    also, ich würde folgendes vorschlagen:

    Du speicherst Quelltext mal so in ner variable und dann splittest du ihn in ein array.

    EIn Bsp.:

    VB.NET-Quellcode

    1. Dim Ganzerquelltext as string = "Das ist <br/> mit brakes"
    2. Dim array() as string = Ganzerquelltext.Split("<br/>")


    So hast du in array(1) "Das ist" und in array(2) "mit Brakes"
    Willst es so in der Art?
    Ich nehme an, Du willst keinen Quelltext, sondern nur den Inhalt der Seite haben.
    Es gibt verscheidene Möglichkeiten:
    1. Quelltext mit HttpWebRequest oder WebClient herunterladen und die Tags "manuell" entfernen.
    2. den WebBrowser-Control nehmen und <wbInstanz>.Document.Body.InnerText aus dem Event DocumentCompleted "rausfischen". Den Rest erledigt für Dich das WebBrowser-Control.
    Beispiel:

    VB.NET-Quellcode

    1. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    2. RichTextBox1.Text = DirectCast(sender, WebBrowser).Document.Body.InnerText
    3. End Sub
    du kannst die HTML-Tags entfernen mit:

    VB.NET-Quellcode

    1. ''' <summary>
    2. ''' Entfernt alle HTML-Tags aus dem übergebenen String
    3. ''' </summary>
    4. ''' <param name="Text">HTML-String</param>
    5. ''' <returns>Plain-Text ohne HTML-Tags</returns>
    6. Public Function RemoveHTML(ByVal Text As String) As String
    7. Return System.Text.RegularExpressions.Regex.Replace(Text, "<.*?>", "")
    8. End Function
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!

    tomboy97 schrieb:

    also, ich würde folgendes vorschlagen:

    Du speicherst Quelltext mal so in ner variable und dann splittest du ihn in ein array.

    EIn Bsp.:

    VB.NET-Quellcode

    1. Dim Ganzerquelltext as string = "Das ist <br/> mit brakes"
    2. Dim array() as string = Ganzerquelltext.Split("<br/>")


    So hast du in array(1) "Das ist" und in array(2) "mit Brakes"
    Willst es so in der Art?

    Müsste es normalerweise nicht so sein, dass array(0) der erste Teil, und array(1) der zweite ist? ;D
    Japs, ein Array is Null Basiert, heißt der erste Index ist somit 0.

    @xtts02: Wür die 2 BRs Parsen das WebBrowser Control zu nehmen ist reichlich über dimensioniert.

    Wie schon gesagt entweder bei den BRs Splitten und die einzelnen String noch Trimmen damit die Steuerzeichen am Anfang und ende des Strings verschwinden

    var = Trim(array(0))
    leider bekomme ich diese Fehlermeldung:
    Eine Ausnahme (erste Chance) des Typs "System.InvalidCastException" ist in Microsoft.VisualBasic.dll aufgetreten.

    Der Code ist:

    VB.NET-Quellcode

    1. '...
    2. Dim array() As String = Appdata.Split("<br/>")
    3. Appbool = array(0)
    4. Apptime = array(1)
    5. Apppath = array(2)

    Wer kann helfen?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „big-d“ ()

    VB.NET-Quellcode

    1. Public Function RemoveHTML(ByVal Text As String) As String
    2. Return System.Text.RegularExpressions.Regex.Replace(Text, "<.*?>", "")
    3. End Function
    4. Dim arr() As String = Split(RemoveHTML(Appdata),vbnewline)
    5. Appbool = arr(0)
    6. Apptime = arr(1)
    7. Apppath = arr(2)
    Für ein Mindestmaß an Rechtschreibung, Interpunktion und Majuskeln!
    Nein hilft nicht!

    Das ist eine Anwendung, die einweinig wie telnet funktioniert.
    wenn ich in einem Webpanel (schon gemacht) soll er einen bestimmten Shell befehl ausführen.
    Code:

    VB.NET-Quellcode

    1. Imports System.Net
    2. Imports System.Runtime.InteropServices
    3. Dim Appbool As String
    4. Dim Apppath As String
    5. Dim Apptime As String
    6. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    7. strm3.Close()
    8. Reader3.Close()
    9. End Sub
    10. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    11. Timer4.Start()
    12. MsgBox(My.Computer.Clock.LocalTime)
    13. End Sub
    14. Public Function RemoveHTML(ByVal Text As String) As String
    15. Return System.Text.RegularExpressions.Regex.Replace(Text, "<.*?>", "")
    16. End Function
    17. Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
    18. Try
    19. Dim Request3 As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://website.de/Shell.html")
    20. Dim Response3 As System.Net.HttpWebResponse = Request3.GetResponse
    21. Dim strm3 As System.IO.Stream = Response3.GetResponseStream()
    22. Dim Reader3 As New System.IO.StreamReader(strm3)
    23. Dim Appdata As String = Reader3.ReadLine
    24. Dim arr() As String = Split(RemoveHTML(Appdata), vbNewLine)
    25. Appbool = arr(0)
    26. Apptime = arr(1)
    27. Apppath = arr(2)
    28. 'Dim array() As String = Url.Split("<br/>")
    29. 'Urlbool = array(0)
    30. 'Urltime = array(1)
    31. 'Urlpath = array(2)
    32. If Appbool = "True" Then
    33. If Apptime = My.Computer.Clock.LocalTime Then
    34. Shell(Apppath)
    35. Else
    36. End If
    37. Else
    38. End If
    39. Catch ex As Exception
    40. End Try
    41. End Sub
    42. End Class