我正在ASP.net/C#建立一个网站,目前我想获得特定页面的Facebook喜欢量(想想视频/文章)。我以编程方式需要这个值,因为我想稍后对它进行排序,但这是一个不同的故事。
我已经知道Facebook本身为获取此金额而提供的链接,如下所示。
将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;
答案 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>)";