我需要帮助从 Facebook 页面提取 RSS 提要我正在使用以下代码,但它一直给我一个错误:
string url =
"https://www.facebook.com/feeds/page.php?id=40796308305&format=rss20";
XmlReaderSettings settings =
new XmlReaderSettings
{
XmlResolver = null,
DtdProcessing=DtdProcessing.Parse,
};
XmlReader reader = XmlReader.Create(url,settings);
SyndicationFeed feed = SyndicationFeed.Load(reader);
foreach (var item in feed.Items)
{
Console.WriteLine(item.Id);
Console.WriteLine(item.Title.Text);
Console.WriteLine(item.Summary.Text);
}
if (reader != null) reader.Close();
此代码适用于任何博客或页面 rss,但对于 Facebook rss,它会给出一个例外,并显示以下消息
名称为“html”且命名空间为“http://www.w3.org/1999/xhtml”的元素不是允许的提要格式。
Thanks
Facebook 在这种情况下将返回 HTML,因为它不喜欢 XmlReader 提供的用户代理。由于您无法自定义它,因此您将需要不同的解决方案来获取提要。这应该可以解决您的问题:
var req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "GET";
req.UserAgent = "Fiddler";
var rep = req.GetResponse();
var reader = XmlReader.Create(rep.GetResponseStream());
SyndicationFeed feed = SyndicationFeed.Load(reader);
这严格来说是 Facebook 的行为,但建议的更改应该同样适用于适合您当前实施的其他网站。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)