3

FacebookページのHTMLにアクセスして、そこからデータを抽出する必要があります。だから、私はを作成する必要がありますWebRequest

例:

私のコードは他のサイトではうまく機能しましたが、Facebookの場合、HTMLにアクセスするにはログインする必要があります。

WebRequestFacebookページの作成にFirefoxデータを使用するにはどうすればよいですか?

私はこれを試しました:

List<string> HTML_code = new List<string>();
WebRequest request = WebRequest.Create(URL);
using (WebResponse response = request.GetResponse())
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
    string line;
    while ((line = stream.ReadLine()) != null)
    {
        HTML_code.Add(line);
    }
}

...しかし、結果として得られるHTMLは、ログインしていないときのFacebookホームページのHTMLです。

4

1 に答える 1

8

Facebookページからいいねの数を取得しようとしている場合は、FacebookのGraphAPIサービスを使用できます。単純にしすぎて、これは私が基本的にコードで行ったことです。

  1. Facebookページのデータを取得します。この場合、FBがリストした例であるため、 Cokeページのデータを使用しました。
  2. Json.Netを使用して、返されたJsonを解析します。これを行う方法は他にもありますが、これにより単純になり、CodeplexでJson.Netを取得できます。私が自分のコードを探したドキュメントは、ドキュメントのこのページからのものでした。彼らのドキュメントは、必要に応じてさらに多くのJsonを解析およびシリアル化するのにも役立ちます。

次に、それは基本的にこのコードに変換されます。ネットワークの使用は常に信頼できるとは限らないため、単純にするために、すべての凝った例外処理を省略したことに注意してください。また、プロジェクトにJson.Netライブラリを含めることを忘れないでください。

使用法:

using System.IO;
using System.Net;
using Newtonsoft.Json.Linq;

コード:

string url = "https://graph.facebook.com/cocacola";
WebClient client = new WebClient();
string jsonData = string.Empty;

// Load the Facebook page info
Console.WriteLine("Connecting to Facebook...");
using (Stream data = client.OpenRead(url))
{
    using (StreamReader reader = new StreamReader(data))
    {
        jsonData = reader.ReadToEnd();
    }
}

// Get number of likes from Json data
JObject jsonParsed = JObject.Parse(jsonData);
int likes = (int)jsonParsed.SelectToken("likes");

// Write out the result
Console.WriteLine("Number of Likes: " + likes);
于 2012-08-01T18:52:24.223 に答える