以编程方式获取特定页面的Facebook喜欢量

时间:2014-08-12 12:41:52

标签: c# asp.net facebook facebook-like

我正在ASP.net/C#建立一个网站,目前我想获得特定页面的Facebook喜欢量(想想视频/文章)。我以编程方式需要这个值,因为我想稍后对它进行排序,但这是一个不同的故事。

我已经知道Facebook本身为获取此金额而提供的链接,如下所示。

http://api.facebook.com/method/fql.query?query=select%20like_count%20from%20link_stat%20where%20url=%27http://www.google.com%27

将www.google.com作为网站,其链接正在计算中,当然可以更改为所需的网页。

有人知道如何访问上面发布的URL / XML文件的xml文件吗?我做过一些研究,但我似乎无法找到适合我的答案。

编辑:我找到了答案。我不得不浏览XML并修改使用的实际URL。工作代码发布在下面。

string result;
        string urlToXMLfile, currentURL;
        currentURL = Globals.NavigateURL(TabId, "", "CategoryId=" + catId, "MovieId=" + Request.QueryString["MovieId"]);

        urlToXMLfile = "https://api.facebook.com/method/fql.query?query=select%20%20like_count%20from%20link_stat%20where%20url=%22";
        urlToXMLfile += currentURL;
        urlToXMLfile += "%22";

        //XDocument xdoc = XDocument.Load(urlToXMLfile);
        //string test = xdoc.Descendants(XName.Get("like_count")).First().Value;


        XmlDocument doc = new XmlDocument();
        doc.Load(urlToXMLfile);

        result = doc.FirstChild.NextSibling.InnerText;

        return result;

3 个答案:

答案 0 :(得分:0)

当我与Selenium合作时,我遇到过同样的问题。我发现对我来说,只需获取该xml的文本表示并保持简单的字符串,将HTML主体存储在变量中即可。这让我以后可以通过正则表达式或其他算法提取我需要的计数。

答案 1 :(得分:0)

我在问题下方添加了自己的答案。这行代码工作并返回一个简单的String,其中FB的数量与该页面相同。

答案 2 :(得分:0)

我找到了一个Selenium解决方案,试试这个:

string pageSource = driver.getPageSource();

在获得数据后,您可以执行以下操作:

// Extract the text between the two like_count elements pattern = "(?i)(<like_count.*?>)(.+?)(</like_count>)";