django-pybrowscap是支持pybrowscap的django中间件
项目描述
django-pybrowscap是支持pybrowscap的django中间件。它使用户-Agent访问视图的所有可能信息装饰请求。
要求
python 2.7+
django
requests (http://docs.python-requests.org/en/latest/)
pybrowscap
browscap csv文件 (http://browsers.garykeith.com/downloads.asp)
安装
通过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
参考资料
项目详情
django-pybrowscap-1.0.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 4154089416f77a79c539023478c6f939619b9e3bb90df1a78784aad01e8922be |
|
| MD5 | 07c7ec68ebcc14989b8de397ca78eea6 |
|
| BLAKE2b-256 | 5a76766508ca8c80f927b8847044293f0a9e7fc2b330d9f0e9b568094db1421a |