Verwenden Sie BrowserSession und HtmlAgilityPack, um sich über .NET bei Facebook anzumelden.

Ich versuche, Rohit Agarwal's @ zu verwend BrowserSession class zusammen mit HtmlAgilityPack, um sich bei Facebook anzumelden und anschließend darin zu navigieren.

Ich habe es zuvor geschafft, dasselbe zu tun, indem ich meine eigenen HttpWebRequest's geschrieben habe. Dies funktioniert jedoch nur dann, wenn ich den Cookie manuell von meinem Browser abrufe und jedes Mal, wenn ich eine neue "Sitzung" durchführe, eine neue Cookie-Zeichenfolge in die Anfrage einfüge. Jetzt versuche ich, BrowserSession zu verwenden, um eine intelligentere Navigation zu erhalten.

Hier ist der aktuelle Code:

BrowserSession b = new BrowserSession();

b.Get(@"http://www.facebook.com/login.php");
b.FormElements["email"] = "[email protected]";
b.FormElements["pass"] = "xxxxxxxx";
b.FormElements["lsd"] = "qDhIH";
b.FormElements["trynum"] = "1";
b.FormElements["persistent_inputcheckbox"] = "1";

var response = b.Post(@"https://login.facebook.com/login.php?login_attempt=1");

Die oben funktioniert gut. Probleme treten auf, wenn ich versuche, diese BrowserSession erneut zu verwenden, um eine andere Seite abzurufen. Ich mache das auf diese Weise, da BrowserSession die Cookies der letzten Antwort speichert und in die nächste Anforderung einfügt. Daher sollte es nicht mehr erforderlich sein, die von meinem Browser abgerufenen Cookiedaten manuell einzufügen.

Allerdings, wenn ich versuche, so etwas zu tun:

var profilePage = b.Get(@"https://m.facebook.com/profile.php?id=1111111111");

das Dokument, das ich zurück bekomme, ist leer. Ich würde mich über jede Eingabe darüber freuen, was ich falsch mache.

Antworten auf die Frage(12)

Ihre Antwort auf die Frage