我有一个django webapp并通过请求模块进行身份验证
import requests
payload = {
'action': 'login',
'username': "username",
'password': "password"
}
r = requests.post('https://example.org/auth', data=payload)
print r.headers
print r.text
print r.cookies
工作正常。但是如何在浏览器中保持会话持久性,即我想打开example.org的另一个标签并已登录?
编辑:我知道 您可以使用以下方法轻松创建持久会话:
s = requests.session()
问题在于如何使会话在多个请求或浏览器选项卡之间保持不变,即如何在浏览器中存储cookie jar。
答案 0 :(得分:0)
使用session()
:
会话对象
Session对象允许您跨越某些参数 要求。它还会在所有请求中保留cookie 会话实例。
所以你可以这样做:
from requests import session
with session() as s:
#connexion
req = s.post('https://example.org/auth', data=payload)
#get another page
req = s.get('https://example.org/otherPage.html')
您还可以从一个请求中获取Cookie:
>>> r = requests.get(url)
>>> r.cookies['example_cookie_name']
'example_cookie_value'
>>> req1Cookies = r.cookies
并使用其他请求发送您想要的Cookie:
要将您自己的cookie发送到服务器,您可以使用cookies参数:
>>> cookies = dict(cookies_are='working')
>>> r = requests.get(url, cookies=cookies)
或
>>> r = requests.get(url, cookies=req1Cookies)