Lsd zum Login benötigt - Regexen nicht möglich?

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von Bady.

    Lsd zum Login benötigt - Regexen nicht möglich?

    Hallo,

    Erst einmal mein Ziel: Ich möchte mit Vb in Facebook eingeloggt sein und muss einen Webrequest ( Get ) absenden können , den ich selbst zusammengestellt habe.
    Die Facebook Api habe ich bis jetzt noch nicht heruntergeladen oder mich darüber informiert, weil ich vermute dass es dort nur Returns gibt und man keinen eigen erstellten Request absenden kann.

    Vllt. kann mir jemand sagen ob man mit der Facebook Api auch Gets und Posts absenden kann?

    Wenn nicht dann bitte ich um Hilfe des Problems beim Regexen.




    Jetzt dachte ich mir, mach ichs halt manuell per HttpWebRequest.

    Auf der Facebook Startseite de-de.facebook.com/, befindet sich im Quelltext ein Wert namens lsd.

    Dieser wird zum Einloggen benötigt.

    Schön und gut, ich kenn mich schon ein wenig aus, diese Werte die sich immer verändern, kann man ja normal immer Regexen.

    Jetzt habe ich versucht das zu Regexen und mir wird immer ein leerer String ausgegeben.

    Mein Regex lautet:

    XML-Quellcode

    1. id=""lsd"" name=""lsd"" value=""([^""]+)
    Hallo ,

    von Youtube her kenne ich das , dass man den WebRequest an eine WebApi senden kann und XML zurück bekommt wo die nötigen Infos stehen. Ansonsten les dir mal die Docu durch von der FB Api.

    Mfg
    Grüße , xChRoNiKx

    Nützliche Links:
    Visual Studio Empfohlene Einstellungen | Try-Catch heißes Eisen
    dann hast du anscheinend den sinn eine API noch nicht so recht verstanden ...
    befass dich nochmal ein bisschen damit ;) de.wikipedia.org/wiki/Programmierschnittstelle

    ich kann nur sagen das es wesentlich einfacher und sauberer ist mit api's zu arbeiten als sich selbst n dirty workaround zu baun

    VB.NET-Quellcode

    1. Dim lsd As String = Regex.Match(Quelltext, "lsd"" value=""([^""]+)""").Groups(1).Value


    MFG
    GOOGLE ist mein Meister :)
    slice Du hast schonmal gar keine Ahnung.
    Du bist glaube ich so einer, der einfach seine Beiträge hochpushen will, ehrlich.

    Bady:

    Danke für die Antwort aber ich schrieb oben, dass ich es mit diesem Regex bereits probiert habe
    und einen leeren String erhielt.

    VB.NET-Quellcode

    1. Option Strict On
    2. Imports System.Net, System.Text.RegularExpressions
    3. Module Module1
    4. Sub Main()
    5. Dim Cl As New WebClient
    6. Cl.Encoding = System.Text.Encoding.ASCII
    7. Dim S As String = Cl.DownloadString("http://de-de.facebook.com/")
    8. Dim Lsd As String = Regex.Match(S, "id=""lsd"" name=""lsd"" value=""([^""]+)").Groups(1).Value
    9. Console.WriteLine(Lsd.Length)
    10. Console.WriteLine(Lsd)
    11. Console.ReadLine()
    12. End Sub
    13. End Module
    Versuchs mal mit:

    VB.NET-Quellcode

    1. Dim request2 As HttpWebRequest = CType(WebRequest.Create("http://www.facebook.com/login.php"), HttpWebRequest)
    2. request2.Method = "GET"
    3. request2.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/8.0"
    4. request2.ContentType = "application/x-www-form-urlendecoded"
    5. request2.UseDefaultCredentials = True
    6. request2.CookieContainer = KrumelMonster
    7. Dim result As HttpWebResponse = CType(request2.GetResponse, HttpWebResponse)
    8. Dim read As New StreamReader(result.GetResponseStream)
    9. Dim serverstring As String = read.ReadToEnd
    10. Dim lsd As String = Regex.Match(serverstring, "lsd"" value=""([^""]+)""").Groups(1).Value ' Regex für den value
    11. read.Close()
    12. MsgBox(lsd)
    GOOGLE ist mein Meister :)

    Bady schrieb:

    Versuchs mal mit:

    VB.NET-Quellcode

    1. Dim request2 As HttpWebRequest = CType(WebRequest.Create("http://www.facebook.com/login.php"), HttpWebRequest)
    2. request2.Method = "GET"
    3. request2.UserAgent = "Mozilla/5.0 (Windows; U; Windows NT 6.1; de; rv:1.9.2.8) Gecko/20100722 Firefox/8.0"
    4. request2.ContentType = "application/x-www-form-urlendecoded"
    5. request2.UseDefaultCredentials = True
    6. request2.CookieContainer = KrumelMonster
    7. Dim result As HttpWebResponse = CType(request2.GetResponse, HttpWebResponse)
    8. Dim read As New StreamReader(result.GetResponseStream)
    9. Dim serverstring As String = read.ReadToEnd
    10. Dim lsd As String = Regex.Match(serverstring, "lsd"" value=""([^""]+)""").Groups(1).Value ' Regex für den value
    11. read.Close()
    12. MsgBox(lsd)

    Nope. Länge = 0
    Hmm ja kein wunder das es nicht funktioniert.... die lsd wird ja auch nicht im quelltest angezeigt.... also value steht "" darum auch die länge 0 ;)
    Warum und wesshalb weiß ich leider auch noch nicht.

    MFG
    GOOGLE ist mein Meister :)