使用Session实例让requests保持会话


Session对象能让你跨请求保持某些参数;最长常见的是,当你使用requests尝试登录并且验证成功,服务端会返回一些Cookie,这些Cookie可以使你的下次请求不需要验证,而Session对象能保持这些Cookie,而不用你每次提交请求时构建一个新的Cookie。

使用Session来实现跨请求保持cookie:

rs = requests.Session()

rs.post('http://yourdomain.com/login',json=somedata)
response = rs.get("http://yourdomain.com/manage")

在第二次请求中,保持了第一次请求服务器返回的Cookie。

需要注意的是,使用参数提交的cookie不会被保持:

rs = requests.Session()

rs.post('http://yourdomain.com/login',json=somedata,cookie={'from':'browser'})
response = rs.get("http://yourdomain.com/manage")

第二次请求不会包含第一次请求使用参数传入的cookie。