Session()在终止python脚本后会关闭吗?

时间:2016-06-03 11:05:17

标签: python session python-requests urllib2

我写了一个简单的python代码来登录论坛,以便保持活力并获得在线时间。代码如下:

logPara = {'username':user,'password':pwd}
s = requests.Session()
s.post(forumUrl,data=logPara)
homePage = requests.get(pageUrl)

我可以获得正确的主页,并确保登录成功。虽然我很好奇这个Session()会持续多长时间?如果我的程序只包含这四行,那么Session()会关闭,因此在线状态会丢失吗?

2 个答案:

答案 0 :(得分:1)

是的,肯定会失去会话。 所以,你有两个让会话持续时间更长的选择,一个是@Seekheart发布的答案。其次是使用python的pickle将会话状态保存在文件中,并在需要时再次加载它。但这也取决于cookie过期等。

这就是你如何做到的。 在发出会话请求时:

import pickle    
import requests

logPara = {'username':user,'password':pwd}
s = requests.Session()
s.post(forumUrl,data=logPara)
homePage = requests.get(pageUrl)

with open('temp.dat', 'w') as f:
    pickle.dump(s, f)

当你想稍后回到州时:

import pickle

with open('temp.dat', 'r') as f:
    s = pickle.load(f)

答案 1 :(得分:0)

当你运行脚本时,除非告诉脚本无休止地运行或在某个条件之后,它几乎会立即终止。因此,对于您的脚本,它将在您运行它之后结束。要继续运行它,您可以设置一个类似的条件。

while 1:
     #Run your code