正在检测网站语言(用于爬网)


Detecting a website language (for crawling)

我正在开发一个爬网程序,似乎无法正确检测网站的文本语言。

大多数时候,我只需要检测网站上的文字是俄语、中文还是日语。

有什么已知的解决方案吗?在html标签中指定语言的网站比例非常低。

我不知道你用什么语言做这件事,但如果是我,我会先做:

确定字符集/编码。这已经告诉你网站的语言:

  • 如果是EUCJP或SJIS:日语
  • 如果是Big5或GB:中文
  • 如果是KOI8-R:俄语

您可以添加更多的字符集进行测试。

但是,如果是UTF/Unicode,请执行以下操作:

  • 有三个Unicode字符组计数器:
    • 西里尔文0x0400-0x052f
    • 中日韩中文/日语0x4e00-0x9fff
    • 日语假名0x304-0x30ff
  • 获取页面
  • 使用一些XML解析器从divs、ps、tds等常见内容标签中获取内容
  • 对于每个字符,确定它属于哪个组并增加其计数器

现在您有3个计数器。如果第一个计数器很高,很可能是俄罗斯人。如果第二个计数器很高,而第三个计数器有很多,那就是日本人。如果第二个计数器很高,而第三个计数器没有,那么它就是中文(或者可能是韩语,但你可以为此添加一个朝鲜文桶)。

检查此页面可以根据需要向您的算法添加块。