2012-08-01 3 views
3

Facebook 페이지의 HTML에서 일부 데이터를 추출하려면 액세스해야합니다. 그래서 WebRequest을 만들어야합니다.Mozilla Firefox를 사용하는 WebRequest

예 :

내 코드가 다른 사이트에 대해 잘 작동하지만, 페이스 북, 나는이 HTML에 액세스 할 수 있습니다하려면 로그인해야합니다

.

Firefox 데이터를 Facebook 페이지에 WebRequest으로 만들려면 어떻게해야합니까?

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은 I가 로그인하고 있지 않다 때 페이스 북 홈 페이지의 HTML입니다 결과

답변

8

당신이하려고하는 것은 번호를 검색되는 경우

나는이 시도. Facebook 페이지의 좋아요 수는 Facebook's Graph API service입니다. 그냥 너무 간단하게, 이건 내가 기본적으로 코드에서 한 것입니다 :

  1. 검색 페이 스북 페이지의 데이터를. 이 경우에는 FB가 나열된 예제이므로 Coke page's data을 사용했습니다.
  2. Json.Net을 사용하여 반환 된 Json을 구문 분석하십시오. 이 작업을 수행하는 다른 방법이 있지만 간단하게 유지하면 Json.Net을 Codeplex에 가져올 수 있습니다. 내 코드를 찾은 문서는 this page에서였습니다. 필요한 경우 Json을 더 파싱하고 직렬화하는 데 도움이되는 설명서도 제공됩니다.

그러면이 코드는 기본적으로이 코드로 변환됩니다. 네트워킹을 사용하는 것이 항상 신뢰할만한 것은 아니므로 간단하게 처리하기 위해 모든 예외 처리를 생략했습니다. 또한 프로젝트에 Json.Net 라이브러리를 포함시키는 것을 잊지 마십시오!

using이 :

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);