Как я могу разобрать строки user-agent в Perl? - PullRequest
5 голосов
/ 01 октября 2010

Мне нужно проанализировать пользовательские агенты в 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.

Может кто-нибудь рассказать мне о любом таком модуле?

Ответы [ 3 ]

15 голосов
/ 01 октября 2010

Возможно, вы ищете модуль HTTP::BrowserDetect.

1 голос
/ 21 января 2012

Я сделал обзор всех модулей Perl CPAN для разбора строки User-Agent:

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

Существует ряд модулей, которые активноподдерживается.Наилучший охват обычных веб-браузеров в настоящее время (январь 2012 г.) предоставлен HTML :: ParseBrowser , который я поддерживаю.

Neil

1 голос
/ 01 октября 2010

Всякий раз, когда вам что-то нужно в Perl, попробуйте CPAN Search . При поиске пользовательский агент показывает только на первой странице результатов несколько модулей, которые вы можете использовать.

...