寻找一个Java用户代理字符串解析器

38

有没有人知道Java中用于解析用户代理字符串的好库?我们已经编写了自定义库,但这似乎是许多人面临的常见问题。我猜想可能有一个好的库可供使用。

例如,用户代理字符串...

"Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.21 Safari/532.0"

...加密地宣布了使用Chrome浏览器在我们网站上的Windows Vista PC的到来。

我见过Python和Ruby的库。有没有Java的库呢?

2个回答

16

可以尝试一个新的库,该库每月更新并可在中央仓库中获得:http://uadetector.sourceforge.net/

这是另一个包装器,用于user-agent-string.info,但与其他包装器相比,它具有更加坚实和经过测试的实现。

我正在开发稳定的API 1.0版本,计划在今年年底发布。在发布API 1.0之后,您无需重新编译任何内容。您只需要在应用程序的lib目录中切换uadetector-resources.jar即可。功能“每月更新”意味着,如果您想要一个已经集成测试的“UAS数据”文件,并保证它可以与定义的核心一起运行,那么这个库适合您的需求。但如果您不想更新由我测试的JAR,则可以使用OnlineUserAgentStringParser,但风险是实现可能无法与自动下载的XML一起运行。当API的1.0版本发布时,我不会发布更多的“uadetector-core”包,除非需要。

对于客户的另一个解决方案可能是,他维护自己的“UAS数据”,当他使用OnlineUserAgentStringParser并自定义属性文件以设置正确的URL时。


这似乎是另一个围绕user-agent-string.info数据的封装。它与他们自己的库相比如何?从您的gravatar来看,我猜那是您自己的项目?虽然我不确定“每月更新”是否是一个功能 - 您希望客户每月重新编译和重新发布他们的应用程序吗? - Rup
@Rup 谢谢您的反馈!我希望我的解释能给您更多的启示。 - before
2
这个库自2014年以来就没有更新过。https://mvnrepository.com/artifact/net.sf.uadetector/uadetector-resources - Mike Holler

5
据我所知(为什么不呢,毕竟这是我曾经工作的服务公司之一提供其产品的服务之一),正确地检测用户代理实际上本身就是一个好的业务。
有几个免费的数据库,如WURFL,其中包含一些用于用户代理的基本识别模式,但这些主要集中在例如移动电话上,因此最终您可能需要继续使用您制作的数据库,并添加从/导出到与当前用户代理识别元数据相关的各种相关格式的能力。

如果你不打算远离桌面/PC世界,那么你不用太担心,因为现在只有四个重要的布局引擎,当然每个引擎都有不同版本和能力集。这四个引擎分别是IE中的Trident, Mozilla的Gecko, KDE的WebKit(至少在Safari和Chrome中)以及Opera的Presto


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接