C# 文本编码比的好算法?

C# 文本编码比的好算法?,c#,algorithm,html-parsing,C#,Algorithm,Html Parsing,在为my开发函数时,我想了解一些有关我的方法的信息: 我使用HtmlAgiltyPack获取所有文本节点,丢弃那些将脚本和样式标记作为父节点的节点,并执行一些额外的文本操作: public static int CalculateTextSize(HtmlDocument doc) { int size = 0; foreach (HtmlNode node in doc.DocumentNode.SelectNodes("

在为my开发函数时,我想了解一些有关我的方法的信息:

我使用HtmlAgiltyPack获取所有文本节点,丢弃那些将脚本和样式标记作为父节点的节点,并执行一些额外的文本操作:

    public static int CalculateTextSize(HtmlDocument doc)
    {
        int size = 0;
        foreach (HtmlNode node in 
           doc.DocumentNode.SelectNodes("//text()[normalize-space(.) != '']"))
        {
            HtmlNode parentNode = node.ParentNode;
            if (parentNode != null)
            {
                if (parentNode.Name.Equals("script",
                       StringComparison.CurrentCultureIgnoreCase)
                    || parentNode.Name.Equals("style",
                       StringComparison.CurrentCultureIgnoreCase))
                {
                    continue;
                }
            }

            string text = node.InnerText.Trim();
            //Just in case agility pack gets it wrong...
            text = StringUtils.StripTags(text);     
            //Replaces "&" => "&" etc.
            text = HttpUtility.HtmlDecode(text);
            //All whitespace is reduced to single space, i.e. 
            //"Foo\r\nBar\t\   Hello" => "Foo Bar Hello"            
            text = StringUtils.NormalizeWhitespace(text);   
            size += text.Trim().Length;
        }

        return size;
    }
你觉得怎么样?例如,这是一个相当严格的方法 semy方法返回23722,而函数返回28671。我做错了吗


更新:正如Oskar Kjellin所指出的,我在计算字符而不是字节,SeoChat在计算字节。什么是最好的,计算字符还是字节?我认为这个指标不应该受到页面编码的影响

产生差异的原因是他在数字节,而你在数字符

我认为最好的方法是计算字节,因为这样做的原因是为了查看加载页面中有多少百分比是文本。因此,您必须获得加载的总页面大小,并使用它来计算。您不能使用字符计数


不知道搜索引擎是如何做到这一点的,但你的很容易被愚弄。您可以将所有内容放在一个大的文本分区中,然后使用CSS隐藏分区。这取决于您希望的深入程度。

这不计算比率,只计算长度。好像他在计算字节,你在计算字符如果你有CalculateTextSize,那么剩下的就微不足道了。我正在计算字符,因为我认为这是一个更好的度量。您使用的编码不应该影响文本与代码的比率?但这当然是造成差异的原因。。。相反,计数字节时我得到了2771(如果我删除了HtmlDecode,我得到2979)很高兴您发现了差异。您还应该使用html中指定的编码。如果对代码使用相同的编码,那么比率不会受到影响(至少可能不会太大),我同意,我现在使用字节。是的,这很容易被愚弄,但它将被用来分析你自己的网站作为一个页面上的指标。谢谢你的意见!