Http标头User-Agent

时间:2011-05-31 12:51:03

标签: python

我正在尝试从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头字段的内容?非常感谢。

1 个答案:

答案 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

希望这有帮助。