如何在网页上获得单词数量?

我需要在网页上获得WORDS的总数。 我知道System.Net.WebClient类。 但它的DownloadString()方法返回整个HTML标记,因为我需要的只是TEXT,这样我就能算出单词的数量。

任何想法/建议欢迎。

看看HTML Agility Pack 。 它允许您将XPath表达式应用于HTML文档。

您想要查找所有文本节点,然后计算单词。 //text()是获取所有文本节点的XPath。

使用HTML Agility Pack下载和解析HTML文档。

然后,您可以查询文档对象并提取所有节点的内部文本。

我看到两个选择:

  1. 使用html库将字符串解析为类似于树的dom。
  2. 使用一些简单的基于文本的黑客

选项1显然更清晰,但引入了对第三方库的额外依赖性。

有几个步骤:

  1. 删除您不喜欢其内容的标签(包含内容)。 例如脚本和样式表。
  2. 删除所有其他标记,保留其内容/从其余标记中提取文本
  3. 使用string.Split函数拆分余数,将所有空格作为拆分字符,并启用忽略空结果字符串的选项
  4. 计算Split返回的条目数。

显然这对所有语言都不适用。 例如,日语/中文在单词之间没有空格。

http://www.wordcounttool.com/ …这是我所知道的最基本的方式

如果您只需要计算用户实际可见的单词(即忽略CSS隐藏的内容并包含JavaScript动态创建的内容),那么您可能需要自动化浏览器或浏览器控件。

可以使用客户端JavaScript完全执行此操作:

  1. 将第一个网页加载到iframe中。
  2. 完成所有内容后,询问运行时DOM以仅提取用户可见的内容。
  3. 将结果写入外页内容区域。
  4. 重复下一个网页。