使用Mozilla Firefox进行WebRequest

3

我需要访问Facebook页面的HTML,以从中提取数据。因此,我需要创建一个WebRequest

例如:

我的代码在其他网站上运行良好,但对于Facebook来说,我必须登录才能访问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 是未登录状态下 Facebook 主页的 HTML。

1个回答

8
如果你想要从 Facebook 页面检索点赞数,你可以使用 Facebook 的 Graph API 服务。为了简单起见,以下是我在代码中基本执行的操作:
  1. 检索 Facebook 页面的数据。在这个例子中,我使用了Coke 页面的数据,因为它是 FB 列出的一个示例。
  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);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接