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

时间:2011-05-23 10:36:26

标签: c# asp.net

我需要在网页上获得WORDS的总数。我知道System.Net.WebClient课程。但它的DownloadString()方法返回整个HTML标记,因为我需要的只是TEXT,所以我可以找出单词的数量。

欢迎任何想法/建议。

5 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分:5)

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

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

答案 2 :(得分:1)

我看到两个选择:

  1. 使用html库将字符串解析为类似树的dom。
  2. 使用一些简单的基于文本的黑客
  3. 选项1显然更清晰,但在第三方库上引入了额外的依赖关系。

    有几个步骤:

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

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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

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

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