首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从HTML页面中提取文章文本内容,如Pocket (稍后阅读)或Readability?

如何从HTML页面中提取文章文本内容,如Pocket (稍后阅读)或Readability?
EN

Stack Overflow用户
提问于 2012-09-03 03:38:22
回答 2查看 9.7K关注 0票数 10

我正在寻找一些开源框架或算法,通过清理HTML代码,删除垃圾东西,从任何HTML页面提取文章文本内容,类似于Pocket (也称为稍后阅读)软件所做的事情。

Pocket官方网页:http://getpocket.com/

这个问题已经在link:How to extract text contents from html like Read it later or InstaPaper Iphone app?下提供了,但我的要求有点不同。我想通过保留字体和样式(CSS)来清理HTML并提取图像的主要内容。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-09-03 03:47:38

我推荐使用NReadabilityHtmlAgilityPack

在NReadability对页面进行代码转换后,主文本始终位于id为readInner的div中。

代码语言:javascript
复制
//** 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;
}
票数 17
EN

Stack Overflow用户

发布于 2012-09-03 03:39:55

使用HTML Agilty Pack -它是一个用于.NET的开源超文本标记语言解析器。

到底什么是超文本标记语言敏捷包?

这是一个敏捷的HTML解析器,它构建了一个读/写DOM,并支持普通的XPATH或XSLT (实际上您不需要理解XPATH或XSLT就可以使用它,不用担心……)。它是一个.NET代码库,允许你解析“网络之外”的超文本标记语言文件。该解析器对“真实世界”格式错误的HTML非常容忍。对象模型非常类似于所提出的System.Xml,只是针对的是超文本标记语言文档(或流)。

您可以使用它来查询HTML并提取您想要的任何数据。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12239128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档