很好的文本代码比算法

本文关键字:算法 代码 文本 很好 | 更新日期: 2023-09-27 18:06:55

在为我的SeoTools Excel插件工作的TextToCodeRatio函数中,我想对我的方法进行一些输入:

我使用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;
    }

你觉得怎么样?这是一种非常严格的方法,比如《aftonbladet》。我的方法返回23722,而SeoChat工具返回28671。我做错了吗?

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

很好的文本代码比算法

差异的原因是他在计算字节数而你在计算字符数。

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

不知道搜索引擎是如何做到这一点的,但你的很容易被愚弄。你可以把所有的东西都放在一个大的div文本中,然后使用CSS来隐藏div。这取决于你想要做的有多彻底。