5

我需要从文本文件中解析 HTTP 标头中的用户代理,以确定浏览器、版本、操作系统和可能的设备。这些行的例子很少:

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Update a; AOL 6.0; Windows 98)

User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Crazy Browser 2.0.0 Beta 1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)

User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_2; de-de) AppleWebKit/531.21.8 (KHTML, like Gecko) Version/4.0.4 Safari/531.21.10

User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 95) Opera 6.01  [en]

由于这些字符串种类繁多,我认为使用有人提供的经过验证且可靠的解析器会是一个更好的主意。我确实在 PHP 或 java 中找到了一些,但似乎没有为 Perl 找到一个。

有人可以告诉我任何这样的模块吗?

4

3 回答 3

15

您可能正在寻找该HTTP::BrowserDetect模块。

于 2010-10-01T13:05:13.850 回答
1

每当您需要 Perl 中的某些东西时,请尝试CPAN 搜索。搜索用户代理仅在结果的第一页中显示您可能使用的几个模块。

于 2010-10-01T17:30:39.300 回答
1

我审查了所有用于解析 User-Agent 字符串的 Perl CPAN 模块:

http://blogs.perl.org/users/neilb/2011/10/cpan-modules-for-parsing-user-agent-strings.html

有许多模块正在积极维护。目前(2012 年 1 月)由我正在维护的HTML::ParseBrowser提供了对常规 Web 浏览器的最佳覆盖。

尼尔

于 2012-01-20T20:49:44.073 回答