我正在尝试从HTTP标头中的User-Agent字符串获取浏览器列表。在许多字符串中,浏览器信息是字符串中的第二个条目,如下所示:
(compatible;.MSIE.8.0;.Windows.NT.5.1;.Trident/4.0)
但是在某些字符串中,没有浏览器信息,或者信息是第3个条目,如下所示:
(Macintosh;.Intel.Mac.OS.X.10_6_1;.U;.so)
(Macintosh;.Intel.Mac.OS.X.10_6_1;.so)
如何处理? Python中是否有用于处理HTTP头字段的内容?非常感谢。
答案 0 :(得分:3)
我在一段时间后用PHP编写了一个用户代理分析器,所以它可能有点过时,但希望它有所帮助。我提取了浏览器信息,操作系统和语言,但我只在这里包含浏览器信息。
所有主要的浏览器名称都包含在UA字符串中,但是Mozilla每个人都使用它,对于Firefox,使用字符串Firefox。因此,使用内容创建一个数组:
browserList = {'Opera': 'Opera',
'Internet Explorer': 'MSIE',
'Firefox': 'Firefox',
'Chrome': 'Chrome',
'Not specified' => ''}
然后尝试在UA字符串上匹配这些。如果您不想扩展统计数据,可以添加更多浏览器。至于版本号,在大多数情况下它出现在浏览器名称之后。因此,请尝试在找到浏览器名称的索引后立即提取第一个数字点号。
您的访问者可能是一个抓取工具(像Google这样的机器人),您可以通过匹配此列表找到这些:
nuhk, Googlebot, Yammybot, Openbot, Slurp, MSNBot, Ask Jeeves/Teoma, ia_archiver
希望这有帮助。