这是我正在使用的代码。
import requests
headers = { 'Accept':'*/*',
'Accept-Language':'en-US,en;q=0.8',
'Cookie':'Cookie:PHPSESSID=vev1ekv3grqhh37e8leu1coob1',
'Cache-Control':'max-age=0',
'Connection':'keep-alive',
'Proxy-Authorization':'Basic ZWRjZ3Vlc3Q6ZWRjZ3Vlc3Q=',
'If-Modified-Since':'Fri, 13 Nov 2015 17:47:23 GMT',
'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
}
with requests.Session() as c:
url = 'http://172.31.13.135/tpo/spp/'
c.get(url, headers=headers)
payload = {'regno': 'myregno', 'password': 'mypassword'}
c.post(url, data = payload, headers=headers)
r = c.get('http://172.31.13.135/tpo/spp/home.php', headers=headers)
print r.content
我运行此脚本时收到以下消息。
<script>
alert("Session timeout !");
window.location = "logout.php";
</script><script>
alert("Unauthorised Access!");
window.location = "index.php";
</script>
<!DOCTYPE html>
<html lang="en">
如何处理这个“会话超时”问题?
多谢提前。
当我不能访问网站去刮的时候,我真的很难回答。 所以我猜
1)尝试从邮件头中删除不需要的cookie。 因为
requests.Session()
将在您第一次访问url = 'http://172.31.13.135/tpo/spp/'
时生成自己的cookie。2)确保header中的
'If-Modified-Since'
字段对您提到的内容是静态的,并且不会发生更改。如果它确实发生了变化,请相应地对其进行编码,以便实时设置日期和时间。3)我不知道你为什么在标题中有
'Proxy-Authorization':'Basic ZWRjZ3Vlc3Q6ZWRjZ3Vlc3Q='
。试试没有它的标题。 但是,如果您必须拥有它,那么请确保此身份验证代码也是静态的,并且不会每次都更改。如果有帮助请告诉我
您也可以在get和post方法中传递timeout变量:
这样做可以调整等待响应的最长时间 有关请求的详细信息,请参见the docs
相关问题 更多 >
编程相关推荐