I’m trying to use Rohit Agarwal’s BrowserSession class together with HtmlAgilityPack to login to and subsequently navigate around Facebook.
I’ve previously managed doing the same by writing my own HttpWebRequest’s. However, it then only works when I manually fetch the cookie from my browser and insert a fresh cookie-string to the request each time I’m doing a new “session”. Now I’m trying to use BrowserSession to get smarter navigation.
Here’s the current code:
BrowserSession b = new BrowserSession();
b.Get(@"http://www.facebook.com/login.php");
b.FormElements["email"] = "some@email.com";
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");
The above works fine. Trouble comes when I try to use this BrowserSession again to fetch another page. I’m doing it this way since BrowserSession saves the cookies from the last response and inserts them into the next request, thus I should not have to manually inser cookiedata fetched from my browser anymore.
However, when I try to do something like this:
var profilePage = b.Get(@"https://m.facebook.com/profile.php?id=1111111111");
the doc I get back is empty. I would appreciate any input on what I’m doing wrong.
Sorry, I don’t know much about the HTML agility pack or BrowserSession class you’ve mentioned. But I did try the same scenario with HtmlUnit and it working just fine. I’m using a .NET wrapper (the source code of which can be found here and is explained a bit more here), and here’s the code I’ve used (some details removed to protect the innocent):
Hope this helps.