解析HTTP用户代理字符串

时间:2009-05-29 18:53:47

标签: python http http-headers user-agent

在Python中解析User-Agent字符串以便可靠地检测

的最佳方法是什么
  1. 浏览器
  2. 浏览器版本
  3. OS
  4. 或者也许是任何帮助它的帮助库

8 个答案:

答案 0 :(得分:67)

回答我自己的问题;)

最后我决定按照#1的建议去写你自己的。我对结果很满意。请随时使用/修改/发送补丁等。

就在这里 - > http://pypi.python.org/pypi/httpagentparser

答案 1 :(得分:10)

UASparser for Python 作者:Hicro Kee。通过版本检查从远程服务器自动更新数据文件和缓存。

答案 2 :(得分:8)

Werkzeug内置了用户代理解析。

新链接(2018年6月) http://werkzeug.pocoo.org/docs/0.14/utils/#module-werkzeug.useragents

答案 3 :(得分:6)

针对the full corpus of Firefox User Agents运行这些建议后,我发现用于比较的版本号解析非常差。

如果这就是你需要的,我建议你看看UAparser,它曾经是browserscope项目的一部分。 Documentation here.

答案 4 :(得分:6)

对这个问题的其他回应现在已经很老了。我相信浏览器用户代理解析中的新标准是Browserscope的user agent parser

many other languages中的完全相同的匹配模式也很方便。有一天你可能还想在JavaScript中解析一些UA字符串,而不必担心解析不一致。

答案 5 :(得分:3)

Th Browser Cap Parser应该有效。虽然它可能有点慢..

答案 6 :(得分:2)

但是,如果您希望在Python端解析所有这些,您可以使用http://browsers.garykeith.com/downloads.asp提供的XML / INI文件对用户代理进行查找。这与php的get_browser()函数中使用的文件相同。

答案 7 :(得分:1)

由于这与开源解决方案无关,因此我怀疑这将成为第一个答案。无论如何,在进行User-Agent分析时,事实上的标准是WURFL(现在是商业产品)。

这里是对技术文档的引用。

https://docs.scientiamobile.com/documentation/infuze/infuze-python-module-user-guide

除此之外,WURFL Microservice is available on the major Cloud Providers marketplaces and also supports a Python client