我们在请求有些网站的数据接口时需要携带session才能请求成功,之前用php写过一个,参考这个里:https://sulao.cn/post/544
现在用flask框架写工具也需要这个功能,顺利写了个记录下来
登录并保存session_id的方法
import requests
#保存session_id
def saveSessionId(username, password):
url = "http://sulao.cn/login"
json_vaule = {
"name" : username,
"password" : hashlib.md5(password.encode(encoding='utf-8')).hexdigest()
}
response = requests.post(url, data=json.dumps(json_vaule))
json_response = response.json()
return json_response["session_id"]然后就是我取数据接口数据的方法
from flask import Flask,render_template,request,jsonify
import urllib.request as rq
import json
app = Flask(__name__)
@app.route('/show', methods=['POST','GET'])
def show():
if request.method == 'POST':
username = request.form.get('user')
password = request.form.get('pass')
cid = saveSessionId(username, password)
cid = str(cid)
url = "http://sulao.cn/api"
header = {
'session_id':cid
}
response = rq.Request(url, headers=header)
response = rq.urlopen(response)
response = response.read()
response = response.decode('utf-8')
return response
return render_template('view/show.html')使用Request对象发送请求时就可以携带一个headers,这里就可以将你的session信息放进去,是字典类型的结构
注意了发送POST请求携带session是另一种写法,过两天再更新上来
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:https://sulao.cn/post/550
评论列表