Web-Inhalte auslesen und im Programm eintragen?

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von RushDen.

    Web-Inhalte auslesen und im Programm eintragen?

    Hallo

    Ich würde gerne in mein Programm eine Anmelde Funktion einbauen, die Inhalte dieser Person von einen Forum (Wie im Beispiel VB-P) im Programm anzeigt (Profilbild und Name):


    Bild scheint nicht zu gehen .. : mediafire.com/convkey/b2a1/gsbhaao7uvymgeb6g.jpg?size_id=5

    Angemeldet:


    Bild scheint nicht zu gehen .. : mediafire.com/convkey/407f/9cxdfo2c687ba0j6g.jpg?size_id=5

    Wie macht man sowas? :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Danke für die Antwort!

    Aber im Moment leuchtet mir das noch nicht ein, mit RegEx habe ich noch nicht gearbeitet, ... müsste ich die Website nicht in einen Webbrowser anzeigen, etc. ???
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    nein musst du nicht bei Regex reicht eine String eingabe ;)
    den krigst du auch ohne Webbrowser z.b über die WebRequest Funktion ;)
    MFG 0x426c61636b4e6574776f726b426974
    InOffical VB-Paradise IRC-Server
    webchat.freenode.net/
    Channel : ##vbparadise
    Okay, aber wie funktioniert das den jetzt genau? Könnt ihr mir vielleicht einen kleinen Ansatz geben? :)

    VB.NET-Quellcode

    1. Dim WebRequest As Net.HttpWebRequest
    2. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    3. WebRequest ???
    4. End Sub
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Ich habe mir eine Klasse vorgefertigt, die ich immer verwende, wenn ich mit webrequest(s) arbeite:

    http klasse:

    VB.NET-Quellcode

    1. Imports System.IO
    2. Imports System.Net
    3. Imports System.Text
    4. Public Class Http
    5. Dim cookieCon As New CookieContainer
    6. Dim request As HttpWebRequest
    7. Dim response As HttpWebResponse
    8. Public Function GetResponse(ByVal url As String) As String
    9. 'request.Proxy = New WebProxy(New Uri(My.Settings.proxy))
    10. request = CType(HttpWebRequest.Create(url), HttpWebRequest)
    11. request.CookieContainer = cookieCon
    12. response = CType(request.GetResponse(), HttpWebResponse)
    13. Return New StreamReader(response.GetResponseStream()).ReadToEnd()
    14. End Function
    15. Public Function GetResponse(ByVal url As String, ByVal post As String) As String
    16. request = CType(HttpWebRequest.Create(url), HttpWebRequest)
    17. request.Method = "POST"
    18. request.CookieContainer = cookieCon
    19. request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0"
    20. request.ContentType = "application/x-www-form-urlencoded"
    21. Dim byteArr() As Byte = Encoding.Default.GetBytes(post)
    22. request.ContentLength = byteArr.Length
    23. Dim dataStream As Stream = request.GetRequestStream()
    24. dataStream.Write(byteArr, 0, byteArr.Length)
    25. response = CType(request.GetResponse(), HttpWebResponse)
    26. Return New StreamReader(response.GetResponseStream()).ReadToEnd()
    27. End Function
    28. End Class


    Hier ein bsp. zum aufruf

    VB.NET-Quellcode

    1. Private Function Login(ByVal User As String, ByVal PWD As String) As Boo
    2. With New Http
    3. Dim html As String = .GetResponse("http://www.paypal.de")
    4. Dim csrf As String = html.Substring(html.IndexOf("csrfModel.returnedCsrf")).Split(""""c)(2)
    5. Dim sb As New StringBuilder
    6. sb.Append("csrfModel.returnedCsrf=" & csrf)
    7. sb.Append("&login_email=" & User)
    8. sb.Append("&login_password=" & PWD)
    9. sb.Append("&submit.x=Einloggen")
    10. html = .GetResponse("https://www.paypal.com/de/cgi-bin/webscr?cmd=_login-submit", sb.ToString())
    11. If html.Contains("Wenn diese") Then
    12. Dim Guthaben As String = html.Substring(html.IndexOf("PayPal-Guthaben")).Split(">")(2).Split("<")(0)
    13. Return Guthaben
    14. Else
    15. Return False
    16. End If
    17. End With
    18. End Function
    Was mir immer hilft ist, schrittweise zu denken. Du willst also Web-Inhalte auslesen, dann musst du erstmal:

    -Eine Möglichkeit finden die Web-Inhalte runterzuladen bzw an diese ranzukommen (Guck dir die Methoden des Webclients an)
    -Nachdem man die Web-Inhalte hat, speichert man diese in einer Variable. Nun guckst du dir den Textausschnitt an & versuchst einen Regex pattern zu erstellen.
    Dabei solltest du erstmal den ganzen String 1:1 übernehmen und testen ob dieser überhaupt gefunden wird. Wenn ja fügst du 1-2 Zeichen in den pattern neu ein (also sowas wie *?.+) und testest erneut, bis dein Pattern funktioniert.

    @windowsfan

    1. wird ihm das nichts bringen weil er den Code wahrscheinlich nicht verstehen wird.
    2. Hab ich den Code glaub ich schonmal fast 1:1 in nem epvp tut gesehen