如何从任何用户的Facebook页面获取全名和图片?

时间:2009-07-23 11:14:52

标签: facebook webrequest

我希望能够访问有关Facebook上任何用户的公开信息。 基本上,这意味着只有用户图片和全名,这就是全部。 这是您在未登录的情况下打开页面时获得的信息,如下所示:

http://www.facebook.com/jurgenappelo

但是,当我尝试从代码执行此操作时,Facebook会返回以下消息:

“您使用的是不兼容的网络浏览器。”

我正在尝试模仿Firefox浏览器,但这似乎不起作用。 难道我做错了什么?或Facebook是否使用其他技术阻止此事?

        var requestString = "http://www.facebook.com/jurgenappelo";
        var request = (HttpWebRequest)WebRequest.Create(requestString);
        request.Headers.Add("HTTP_USER_AGENT", "Gecko/20050511 Firefox/1.0.4"); 
        try
        {
            HttpWebResponse response =(HttpWebResponse)request.GetResponse();
            if (response != null)
            {
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    Stream stream = response.GetResponseStream();
                    using (StreamReader reader = new StreamReader(stream))
                    {
                        var html = reader.ReadToEnd();
                    }
                }
            response.Close();
            }
        }
        catch { }

2 个答案:

答案 0 :(得分:8)

  

我做错了吗?

您违反了Facebook的条款和条件:

  

未经我们许可,您不会使用自动方式(例如收获机器人,机器人,蜘蛛或刮刀)收集用户信息或以其他方式访问Facebook。

- http://www.facebook.com/terms.php?ref=pf

答案 1 :(得分:3)

根据这个:

Setting HTTP headers in .NET: This header must be modified using the appropriate property

你应该尝试更改:

request.Headers.Add("HTTP_USER_AGENT", "Gecko/20050511 Firefox/1.0.4"); 

为:

request.UserAgent = "Gecko/20050511 Firefox/1.0.4";