【问题标题】:Get Page Main Content using the URL使用 URL 获取页面主要内容
【发布时间】:2012-08-21 14:24:27
【问题描述】:

我需要能够从某个 url 获取页面主要内容。 我需要做的一个很好的例子如下:http://embed.ly/docs/explore/preview?url=http%3A%2F%2Fedition.cnn.com%2F2012%2F08%2F20%2Fworld%2Fmeast%2Fflight-phobia-boy-long-way-home%2Findex.html%3Fiid%3Darticle_sidebar

我正在使用带有 C# 语言的 asp.net。

【问题讨论】:

    标签: c# asp.net url


    【解决方案1】:

    解析 html 页面并猜测主要内容并非易事。我建议使用NReadabilityHtmlAgilityPack

    这是一个如何完成的示例。在 NReadability 对页面进行转码后,正文始终位于 div 中,id 为 readInner

    string url = "http://.......";
    
    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 text = doc.DocumentNode.SelectSingleNode("//div[@id='readInner']")
                      .InnerText;
    }
    

    【讨论】:

    • 这是一个非常有用的答案,您认为我添加的链接使用了这样的技术从我们提供链接的任何网站获取内容吗?我也找不到 NReadability dll,你能提供一个链接吗
    • @AliIssa 链接在答案中。点击第 2 行的 NReadability。
    • 在此文件夹中找不到哪个github.com/marek-stoj/NReadability
    • @AliIssa 链接页面左下角
    • 这个方法现在好像已经过时了,不能渲染完整的html。有什么解决方法吗?
    【解决方案2】:

    男人,

    我猜它是使用WebClient ClassWebRequest Class 的实现实现的。有了它,你可以下载页面的所有内容,然后使用任何数据挖掘算法,你可以得到你想要的信息。

    []的

    【讨论】:

    • 我认为 OP 真正要求的是 data mining algorithm
    • @L.B 好的,我同意 HtmlAgilityPack 是一种数据挖掘算法的实现,但是,由于问题很模糊,因为它不知道他想要什么内容,HtmlAgilityPack 可能不是很好的解决方案。
    • HAP其实是一个Html Parser,真正的逻辑在NReadability。顺便说一句,我在发布之前测试了上面的代码。
    猜你喜欢
    • 2011-05-12
    • 2016-03-28
    • 1970-01-01
    • 2011-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    相关资源
    最近更新 更多