HttpWebRequest & HttpWebResponse + RegEx

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von Kaktus-Stecher.

    HttpWebRequest & HttpWebResponse + RegEx

    Hallo,

    ich mal wieder mit einem neuen Problem.
    Auch diesmal Suchfunktion stundenlang benutzt, aber nichts passendes gefunden.
    Habe aber viel rumprobiert und umgeschrieben.

    Also mein Problem ist, dass ich nach dem erfolgreichen einloggen weiter navigieren möchte.
    HttpWebRequest und HttpWebResponse an sich funktionieren prima (nebenbei: irgendwie nur mit Framework 4..bis ich mal dahinter kam...)
    Ich würde aber gerne nach dem Login auf eine nächste Seite gehen, wo dann bestimmte Statistiken zu sehen sind. Diese Statistik möchte ich dann in einem Label anzeigen.

    Ich habe versucht einen zweiten HttpWebRequest anzufordern, aber an den Quelltext komme ich dann nur heran, wenn ich das zweite mal auf den Button klicke. Und dann funktioniert RegEx nicht, da sich das dann auf den ersten Quelltext bezieht, der nach dem erfolgreichen Login da ist.

    Ich würde gerne mit einem Klick einloggen, auf die nächste Seite navigieren und dort die Statistiken einlesen.

    Würde mich auf Hilfestellungen freuen :)
    Ob es nun sauberer Code ist oder nicht, kann ich nicht beurteilen. Denke aber, ich habe viel zu viel geschrieben.
    ABER, so lange es für mich funktioniert! :D
    Vielleicht kanns ja jemand optimieren, oder mir sagen, wie ich was zu machen habe :)

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim CookieCon As New CookieContainer
    3. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    4. Dim Request As HttpWebRequest = CType(WebRequest.Create("http://loginseite"), HttpWebRequest)
    5. Request.Method = "POST"
    6. Request.ContentType = "application/x-www-form-urlencoded"
    7. Request.CookieContainer = CookieCon
    8. Dim Post As String = "" 'Poststring
    9. Dim byteArray() As Byte = Encoding.UTF8.GetBytes(Post)
    10. Request.ContentLength = byteArray.Length
    11. Dim DataStream As Stream = Request.GetRequestStream()
    12. DataStream.Write(byteArray, 0, byteArray.Length)
    13. DataStream.Close()
    14. Dim Response As HttpWebResponse = Request.GetResponse()
    15. DataStream = Response.GetResponseStream()
    16. Dim reader As New StreamReader(DataStream)
    17. Dim ServerResponse As String = reader.ReadToEnd()
    18. reader.Close()
    19. DataStream.Close()
    20. Response.Close()
    21. Dim Request2 As HttpWebRequest = CType(WebRequest.Create("http://naechsteseite"), HttpWebRequest)
    22. Request2.ContentType = "application/x-www-form-urlencoded"
    23. Request2.CookieContainer = CookieCon
    24. Dim Response2 As HttpWebResponse = Request2.GetResponse()
    25. DataStream = Response2.GetResponseStream()
    26. Dim reader2 As New StreamReader(DataStream)
    27. Dim ServerResponse2 As String = reader2.ReadToEnd()
    28. reader2.Close()
    29. DataStream.Close()
    30. Response2.Close()
    31. Dim AlltimeRegex As New Regex("All Time \<span class=\""green-text\""\>(?<string>(.*))\<\/span\>")
    32. Dim Alltimes As String = AlltimeRegex.Match(ServerResponse2).Groups("string").ToString()
    33. Label1.Text = Alltimes
    34. Dim MonthsRegex As New Regex("Month's \<span class=\""green-text\""\>(?<string>(.*))\<\/span\>")
    35. Dim Monthss As String = MonthsRegex.Match(ServerResponse2).Groups("string").ToString()
    36. Label3.Text = Monthss
    37. Dim ApprovedRegex As New Regex("Approved \<span class=\""green-text\""\>(?<string>(.*))\<\/span\>")
    38. Dim Approveds As String = ApprovedRegex.Match(ServerResponse2).Groups("string").ToString()
    39. Label4.Text = Approveds
    40. Dim TodayRegex As New Regex("\<strong\>Today's \<\/strong\>\<span\>(?<string>(.*))\<\/span\>")
    41. Dim Todayss As String = TodayRegex.Match(ServerResponse2).Groups("string").ToString()
    42. Label2.Text = Todayss
    43. End Sub
    44. End Class