使用Mozilla Firefox的WebRequest

Ion*_*zău 3 .net c# wpf firefox webrequest

我需要访问Facebook页面的HTML,从中提取一些数据.所以,我需要创建一个WebRequest.

例:

我的代码适用于其他网站,但对于Facebook,我必须登录才能访问HTML.

如何使用Firefox数据创建WebRequestFacebook页面?

我试过这个:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

...但是当我没有登录时,HTML结果是Facebook主页的HTML.

Jos*_*den 8

如果你想要的是从Facebook页面检索喜欢的数量,你可以使用Facebook的Graph API服务.只是保持简单,这是我在代码中基本上做的:

  1. 检索Facebook页面的数据.在这种情况下,我使用了Coke页面的数据,因为它是FB列出的一个例子.
  2. 使用Json.Net解析返回的Json.还有其他方法可以做到这一点,但这只是保持简单,你可以在Codeplex上获得Json.Net .我查找代码的文档来自文档中的此页面.如果需要,他们的文档还可以帮助您解析和序列化更多Json.

然后,这基本上转换为此代码.请注意,我遗漏了所有奇特的异常处理以保持简单,因为使用网络并不总是可靠的!另外,不要忘记在项目中包含Json.Net库!

Usings:

using System.IO;
using System.Net;
using Newtonsoft.Json.Linq;
Run Code Online (Sandbox Code Playgroud)

码:

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);
Run Code Online (Sandbox Code Playgroud)