我希望能够访问有关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 { }
答案 0 :(得分:8)
我做错了吗?
您违反了Facebook的条款和条件:
未经我们许可,您不会使用自动方式(例如收获机器人,机器人,蜘蛛或刮刀)收集用户信息或以其他方式访问Facebook。
答案 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";