跳转到主要内容

django-pybrowscap是支持pybrowscap的django中间件

项目描述

django-pybrowscap是支持pybrowscap的django中间件。它使用户-Agent访问视图的所有可能信息装饰请求。

要求

安装

通过pipy安装或将其模块复制到您的项目或PYTHON_PATH中。

将django_pybrowscap放入项目settings.py文件中的INSTALLED_APPS

INSTALLED_APPS = (
    'localeurl',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',
    'django.contrib.sitemaps',
    'web',
    'debug_toolbar',
    'rosetta',
    'south',
    'django_pybrowscap'
)

将django_pybrowscap.middleware.PybrowscapMiddleware放入项目settings.py文件中的MIDDLEWARE_CLASSES

MIDDLEWARE_CLASSES = (
    'web.middleware.LocaleMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django_pybrowscap.middleware.PybrowscapMiddleware',
    ....
)

配置

django settings.py常量

# This setting will effectively turn the middleware off, to speed up requests/response while developing
PYBROWSCAP_INITIALIZE = True # Default is `not settings.DEBUG`.

# Path where browscap file is located on filesystem
PYBROWSCAP_FILE_PATH = MEDIA_ROOT+os.sep+'browscap.csv' # Default is '' (empty string)

# Proxy to use
# See: http://docs.python-requests.org/en/latest/user/advanced/#proxies
PYBROWSCAP_PROXIES = {
  "http": "http://user:pass@10.10.1.10:3128",
  "https": "http://10.10.1.10:1080",
} # Defaults to None.

# Timeout for HTTP requets
# See: http://docs.python-requests.org/en/latest/user/quickstart/#timeouts
PYBROWSCAP_HTTP_TIMEOUT = 30

# Tuple of regular expressions of paths that are to be ignored by the middleware
PYBROWSCAP_IGNORE_PATHS = (
    re.compile(r'^/sitemap.xml$'),
    re.compile(r'^/robots.txt$'),
    re.compile(r'^/favicon.ico$'),
    re.compile(r'^/media/')
) # Defaults to an empty tupple.

# This tells middleware to reload browscap file from disk every PYBROWSCAP_RELOAD_INTERVAL seconds
PYBROWSCAP_RELOAD = True # Reload file. Default is False.
PYBROWSCAP_RELOAD_INTERVAL =  7 * 24 * 60 * 60 # Reloads browscap file once a week

自动更新

通过执行内置管理命令下载最新版本的browscap数据:

$ python manage.py download_browscap \
--url http://browsers.garykeith.com/stream.asp?BrowsCapCSV \
--file-path /path/to/downloaded/browscap_file

此命令不需要提供任何选项。默认情况下,最新的CSV browscap文件将被下载并保存到settings.PYBROWSCAP_FILE_PATH。别忘了将settings.PYBROWSCAP_RELOAD = True设置为True。为方便起见,每周通过cron自动执行一次命令:

5 8 * * 6 python manage.py download_browscap

示例

def standard_view(request):
    if request.browser is not None and request.browser.is_crawler():
        # do something
    else:
        # do something else

测试

在环境上测试

  • Ubuntu Linux 12.04 LTS 精确版 64位

  • python 2.7.3

  • python 单元测试

  • browscap_14_05_2012.csv 来自 Mon, 14 May 2012 22:20:20 -0000

运行测试

要运行测试,请执行以下命令之一:

$ python setup.py test
$ make test

作者

char0n (Vladimir Gorej, CodeScale)
电子邮件: gorej@codescale.net

参考资料

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分布

django-pybrowscap-1.0.0.tar.gz (8.4 kB 查看哈希值)

上传时间 源代码

由以下提供支持