很好的文本代码比算法
本文关键字:算法 代码 文本 很好 | 更新日期: 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。这取决于你想要做的有多彻底。