如何在网页上获得单词数量?
我需要在网页上获得WORDS的总数。 我知道System.Net.WebClient
类。 但它的DownloadString()
方法返回整个HTML标记,因为我需要的只是TEXT,这样我就能算出单词的数量。
任何想法/建议欢迎。
看看HTML Agility Pack 。 它允许您将XPath表达式应用于HTML文档。
您想要查找所有文本节点,然后计算单词。 //text()
是获取所有文本节点的XPath。
使用HTML Agility Pack下载和解析HTML文档。
然后,您可以查询文档对象并提取所有节点的内部文本。
我看到两个选择:
- 使用html库将字符串解析为类似于树的dom。
- 使用一些简单的基于文本的黑客
选项1显然更清晰,但引入了对第三方库的额外依赖性。
有几个步骤:
- 删除您不喜欢其内容的标签(包含内容)。 例如脚本和样式表。
- 删除所有其他标记,保留其内容/从其余标记中提取文本
- 使用string.Split函数拆分余数,将所有空格作为拆分字符,并启用忽略空结果字符串的选项
- 计算
Split
返回的条目数。
显然这对所有语言都不适用。 例如,日语/中文在单词之间没有空格。
http://www.wordcounttool.com/ …这是我所知道的最基本的方式
如果您只需要计算用户实际可见的单词(即忽略CSS隐藏的内容并包含JavaScript动态创建的内容),那么您可能需要自动化浏览器或浏览器控件。
可以使用客户端JavaScript完全执行此操作:
- 将第一个网页加载到iframe中。
- 完成所有内容后,询问运行时DOM以仅提取用户可见的内容。
- 将结果写入外页内容区域。
- 重复下一个网页。