我正在开发一个爬网程序,似乎无法正确检测网站的文本语言。
大多数时候,我只需要检测网站上的文字是俄语、中文还是日语。
有什么已知的解决方案吗?在html标签中指定语言的网站比例非常低。
我不知道你用什么语言做这件事,但如果是我,我会先做:
确定字符集/编码。这已经告诉你网站的语言:
- 如果是EUCJP或SJIS:日语
- 如果是Big5或GB:中文
- 如果是KOI8-R:俄语
您可以添加更多的字符集进行测试。
但是,如果是UTF/Unicode,请执行以下操作:
- 有三个Unicode字符组计数器:
- 西里尔文0x0400-0x052f
- 中日韩中文/日语0x4e00-0x9fff
- 日语假名0x304-0x30ff
- 获取页面
- 使用一些XML解析器从
div
s、p
s、td
s等常见内容标签中获取内容 - 对于每个字符,确定它属于哪个组并增加其计数器
现在您有3个计数器。如果第一个计数器很高,很可能是俄罗斯人。如果第二个计数器很高,而第三个计数器有很多,那就是日本人。如果第二个计数器很高,而第三个计数器没有,那么它就是中文(或者可能是韩语,但你可以为此添加一个朝鲜文桶)。
检查此页面可以根据需要向您的算法添加块。