session spider2
Spider
session_spider.py
import requests
session = requests.session()
session.post("http://127.0.0.1:5000/auth", data={
"user": "will",
"pwd": "123456"
})
# 携带cookie爬取数据
res = session.get("http://127.0.0.1:5000/books")
print(res.text)Server
main.py
|____temps
| |____index.html
| |____login.html
main.py
from flask import Flask, request, render_template, make_response
import json
import uuid
app = Flask(__name__, template_folder="temps")
COOKIEID = "8EA6EC79097240F2B4DC58D45A0EC12E"
# 获取登录页面
@app.route("/login")
def login():
return render_template("login.html")
# 登录认证
@app.route("/auth", methods=['POST'])
def auth():
# 用户名密码验证
user = request.form.get("user")
pwd = request.form.get("pwd")
if user == "will" and pwd == "123456":
resp = make_response("success!")
# 写cookie
resp.set_cookie("login_id", COOKIEID)
return resp
else:
return "fail!"
@app.route("/")
def index():
# cookie验证
login_id = request.cookies.get("login_id")
if login_id == COOKIEID:
return render_template("index.html")
else:
return "请登录!"
@app.route("/books")
def books():
# cookie验证
login_id = request.cookies.get("login_id")
if login_id == COOKIEID:
data = json.dumps(["西游记", "红楼梦", "三国演义", "水浒传"], ensure_ascii=False)
return data
else:
return "请登录!"
app.run() # 默认端口号
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>四大名著</h3>
<p class="content"></p>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.js"></script>
<script>
// 基于jquery发送ajax请求
$.ajax("http://127.0.0.1:5000/books", {
"type": "get",
success: function (res) {
$(".content").html(res)
}
})
</script>
</body>
</html>login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action="/auth" method="post">
用户名 <input type="text" name="user">
密码 <input type="password" name="pwd">
<input type="submit">
</form>
</body>
</html>Last updated