Django Cookie实现反爬
创建新项目,创建一个APP,blog,添加APP设置路由这些也不过多的叙述我们直接看blog_urls.py
path('', views.index2, name='index'),
path('create', views.create, name='create'),
path('myCookie', views.myCookies, name='myCookies'),
views.py
def index2(request):
return render(request, 'index3.html') # 定义首页
def create(request):
r = redirect(reverse('blog:index')) # 解析路由重定向路由
r.set_signed_cookie('uuid', 'id', salt='MyDj', max_age=10) # 在重定向过程中加入Cookie信息salt为加密盐
return r # 依旧是返回首页不过是加入了cookie信息
def myCookies(request):
cookieExist = request.COOKIES.get('uuid', '') # 获取coolie信息
if cookieExist:
try:
request.get_signed_cookie('uuid', salt='MyDj') # 请求获取cookie解密并且验证
except:
raise Http404("当前Cookies,无效")
return HttpResponse('当前Cookie为:' + cookieExist)
else:
raise Http404('当前访问没有Cookie哦!')
index3.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello Cookies</title>
</head>
<body>
<a href="{% url 'blog:create' %}">创建Cookie</a>
<a href="{% url 'blog:myCookies' %}">查看Cookie</a>
</body>
</html>
由上面可以看出反爬机制设置的页面是myCookies,其实质就是对于特定的Cookie进行解密后的数据进行判断