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中的任何东西吗?

4

2 回答 2

16

但是尝试一个新的库,它每月更新并在中央存储库中可用:http: //uadetector.sourceforge.net/

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

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

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

于 2012-05-07T23:21:22.880 回答
5

据我所知(为什么我不应该,它是我曾经工作过的服务公司之一,提供其产品),正确完成检测用户代理本身实际上是一项好生意。

有几个免费的数据库,例如WURFL,其中包含一些用于用户代理的基本识别模式,但那些主要集中在例如手机上,所以最后你可能不得不继续使用你制作的数据库,并添加从/导入的功能导出到与用户代理标识元数据的当前状态相关的各种相关格式。

如果您不打算离开桌面/PC 世界,那么您不必担心太多,因为那里只有四个主要的布局引擎,当然还有一组具有不同功能的版本。四大是IE 中的 TridentMozilla 的 GeckoKDE ​​的 WebKit(至少在 Safari 和 Chrome 中)和Opera 的 Presto

于 2009-09-29T16:41:09.907 回答