4

Facebook の任意のユーザーに関する公開情報にアクセスしたいと考えています。基本的に、それはユーザーの写真と氏名のみを意味します。それだけです。次のように、ログインせずにページを開いたときに取得する情報です。

http://www.facebook.com/jurgenappelo

ただし、コードからこれを実行しようとすると、Facebook は次のメッセージを返します。

「互換性のない Web ブラウザを使用しています。」

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 { }
4

2 に答える 2

8

私は何か間違ったことをしていますか?

あなたは Facebook の利用規約に違反しています:

当社の許可なしに、自動化された手段 (ボット、ロボット、スパイダー、スクレーパーの収集など) を使用して、ユーザーの情報を収集したり、Facebook にアクセスしたりしないでください。

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

于 2009-07-23T11:19:52.413 に答える
3

これによれば:

.NETでのHTTPヘッダーの設定:このヘッダーは、適切なプロパティを使用して変更する必要があります

変更してみてください:

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

に:

request.UserAgent = "Gecko/20050511 Firefox/1.0.4";
于 2009-07-23T12:31:21.567 に答える