刮刮Facebook应用程序获取数据

我正在使用一个Facebook应用程序,它具有丰富的信息,我想在线下获取。 为此,我基本上需要从网页中读取信息到我自己的数据库中。 显然,我不想手动保存页面,让我的应用程序读取页面并从中提取相关详细信息。 不幸的是,我首先要求对Facebook进行身份validation。 所以当我运行这段代码时:

private static string getPage(string pageAddress) { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(new Uri(baseUri, pageAddress)); HttpWebResponse response = (HttpWebResponse)req.GetResponse(); StreamReader readStream = new StreamReader(response.GetResponseStream()); string page = readStream.ReadToEnd(); readStream.Close(); response.Close(); // I know, I'm paranoid and this is likely redundant... return page; } 

我收到了这个回复:

  if (parent != self) top.location.href = "http://www.facebook.com/login.php?api_key=&canvas&v=1.0"; else self.location.href = "http://www.facebook.com/login.php?api_key=&canvas&v=1.0";  

任何想法如何告诉应用程序我真的真正的我?

据我了解你只需要登录facebook应用程序,对吧? 使用任何网络抓取/爬行框架(它们支持JS,cookie等)。 他们只是模仿我们的网页浏览。 例如,试试这些:

http://scrapy.org/

http://wwwsearch.sourceforge.net/mechanize/

http://watin.sourceforge.net/

另见

.Net屏幕抓取和会话

Facebook使用REST,因此您可以从服务器请求数据; 它还能够从客户端JavaScript API访问数据。 您可以查看维基以获取更多信息; 它使用rest_server.php?method =从适当的方法中获取数据。

查看http://www.facebook.com/developers以获取有关这些对象/方法的更多信息/创建应用程序,以便查询facebook数据。

您需要使用facebook API从Facebook获取数据。 他们阻止了屏幕截图

您首先必须编写脚本以编程方式登录Facebook。 然后你必须保存你得到的cookie。

我用curl和php做了类似的事情。 (curl内置了cookie处理)

我认为他们正在使用cookie来通过身份validation,所以首先你需要你的应用程序登录到facebook,并将cookie保存在CookieContainer中,然后将其分配给req.CookieContainer,然后才将其分配给req.GetResponse();