参考资料:python中requests库使用方法详解
大部分的方法这位兄弟已经讲的分厂详细了,我就不赘述了。
我说一下在requests中非常好用的requests.session.get()或request.session.post()。大部分的web接口都会要求登录后才能访问,我们总不能每次在访问之前都先去登录,虽然可以但太麻烦。requests.session就很好的帮我们解决了这个问题。当我们登录的时候使用requests.session.post()登录成功后,服务器为了保持登录状态会在响应头中设置cookie信息,这是session会自动保存cookie,下一次再使用该session访问路由时就会自动携带保存的cookie信息,从而实现帮我们保持登录状态的目的。
例如flask项目防止csrf的实现:
session = requests.session()
# 1、在我们通过/login(GET)获取登录页面(表单)时,flask-wtf会自动往响应头的cookie中设置csrf_token的值,同时在表单中添加隐藏字段,值也是csrf_token.
resp = session.get(/login) # session会自动保存设置在响应头中的cookie
data = {
"csrf_token": "xxx"
"username": "zhangsan",
"password": "12345678',
"submit": "登录"
}
resp = session.post(‘/login’, data) # 2、会自动携带保存的cookie
# 3、验证
# flask中的CsrfProtect(app)会自动从提交的表单和cookie中取出csrf_token校验
(1)selenium中
chrome.find_element_by_id('test').get_attribute("value") # bbb
(2)request中
element.xpath('//input[@id="test"]/@value')[0] # bbb