我正在寻找一些开源框架或算法,通过清理 HTML 代码、删除垃圾内容从任何 HTML 页面中提取文章文本内容,类似于 Pocket(又名稍后阅读)软件所做的。
掌上官网:http: //getpocket.com/
此问题已在链接下提供: 如何从 html 中提取文本内容,例如稍后阅读或 InstaPaper Iphone 应用程序? 但我的要求有点不同。我想通过保留字体和样式 (CSS) 来清理 HTML 并使用图像提取主要内容。
我正在寻找一些开源框架或算法,通过清理 HTML 代码、删除垃圾内容从任何 HTML 页面中提取文章文本内容,类似于 Pocket(又名稍后阅读)软件所做的。
掌上官网:http: //getpocket.com/
此问题已在链接下提供: 如何从 html 中提取文本内容,例如稍后阅读或 InstaPaper Iphone 应用程序? 但我的要求有点不同。我想通过保留字体和样式 (CSS) 来清理 HTML 并使用图像提取主要内容。
我会推荐NReadability和HtmlAgilityPack
readInner
在 NReadability 对页面进行转码后,主文本始终位于带有 id 的 div 中。
//** replace this with any url **
string url = "http://www.bbc.co.uk/news/world-asia-19457334";
var t = new NReadability.NReadabilityWebTranscoder();
bool b;
string page = t.Transcode(url, out b);
if (b)
{
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(page);
var title = doc.DocumentNode.SelectSingleNode("//title").InnerText;
var imgUrl = doc.DocumentNode.SelectSingleNode("//meta[@property='og:image']").Attributes["content"].Value;
var mainText = doc.DocumentNode.SelectSingleNode("//div[@id='readInner']").InnerText;
}
使用HTML Agilty Pack - 它是一个用于 .NET 的开源 HTML 解析器。
什么是 Html Agility Pack (HAP)?
这是一个敏捷的 HTML 解析器,它构建一个读/写 DOM 并支持普通的 XPATH 或 XSLT(实际上你不必了解 XPATH 或 XSLT 就可以使用它,不用担心......)。它是一个 .NET 代码库,允许您解析“网络之外”的 HTML 文件。解析器对“真实世界”格式错误的 HTML 非常宽容。对象模型与 System.Xml 的提议非常相似,但用于 HTML 文档(或流)。
您可以使用它来查询 HTML 并提取您想要的任何数据。