Python Http头用户代理

Python Http头用户代理,python,Python,我试图从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头中的用户代理字符串中获取浏览器列表。在许多字符串中,浏览器信息是字符串中的第二个条目,如下所示:

(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头字段的内容?非常感谢。

不久前我用PHP编写了一个用户代理分析器,所以它可能有点过时,但希望它能有所帮助。我提取了浏览器信息、操作系统和语言,但这里只包含浏览器信息

所有主要的浏览器名称都包含在UA字符串中,但Mozilla几乎没有,对于Firefox,请使用Firefox字符串。因此,创建一个包含以下内容的数组:

browserList = {'Opera': 'Opera', 
    'Internet Explorer': 'MSIE',
    'Firefox': 'Firefox',
    'Chrome': 'Chrome',
    'Not specified' => ''}
然后尝试在UA字符串上匹配这些。如果不想扩展统计数据,可以添加更多浏览器。至于版本号,在大多数情况下,它出现在浏览器名称之后。因此,请尝试在找到浏览器名称的索引之后提取第一个数字

您的访问者可能是一个爬虫(一个机器人,像谷歌的),您可以通过匹配以下列表来找到:

nuhk, Googlebot, Yammybot, Openbot, Slurp, MSNBot, Ask Jeeves/Teoma, ia_archiver

希望这能有所帮助。

UA字符串没有任何意义或理由,只有疯狂:(没错,你只能针对某些浏览器进行优化,你没有通用的方法也可以查看此线程:谢谢你们的回复和评论。我会看看能做些什么:)