Я пытаюсь получить список браузеров из строк агента User- в заголовке HTTP. Во многих строках информация обозревателя является второй строкой в строке, например:
(compatible;.MSIE.8.0;.Windows.NT.5.1;.Trident/4.0)
Но в некоторых строках нет либо информации обозревателя, либо информация поступает как третья запись, как в следующем:
(Macintosh;.Intel.Mac.OS.X.10_6_1;.U;.so)
(Macintosh;.Intel.Mac.OS.X.10_6_1;.so)
Как подойти к этому? Есть ли что-нибудь в Python для обработки полей заголовка HTTP? Большое спасибо.
Я написал анализатор User Agent на PHP некоторое время назад, поэтому может быть немного устаревшим, но надеюсь, что это поможет. Я извлек информацию обозревателя, операционную систему и язык, но здесь я буду включать только информацию обозревателя.
Все основные имена браузеров включены в строку UA, но Mozilla в almoust каждый, для Firefox, использует строку Firefox. Поэтому создайте массив с содержимым:
browserList = {'Opera': 'Opera',
'Internet Explorer': 'MSIE',
'Firefox': 'Firefox',
'Chrome': 'Chrome',
'Not specified' => ''}
Затем попробуйте сопоставить их в строке UA. Вы можете добавить больше браузеров, если не хотите расширять свою статистику. Что касается номера версии, то в большинстве случаев это происходит сразу после имени браузера. Поэтому попробуйте извлечь первый number- dot- номер сразу после индекса, в котором вы нашли имя браузера.
Ваш посетитель может быть искателем (ботом, как Google), вы можете найти их, сопоставляя их с этим списком:
nuhk, Googlebot, Yammybot, Openbot, Slurp, MSNBot, Ask Jeeves/Teoma, ia_archiver
Надеюсь, что это поможет.