我写了一个简单的python代码来登录论坛,以便保持活力并获得在线时间。代码如下:
logPara = {'username':user,'password':pwd}
s = requests.Session()
s.post(forumUrl,data=logPara)
homePage = requests.get(pageUrl)
我可以获得正确的主页,并确保登录成功。虽然我很好奇这个Session()会持续多长时间?如果我的程序只包含这四行,那么Session()会关闭,因此在线状态会丢失吗?
答案 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