Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有python请求的连续请求。会话()不工作_Python_Python Requests - Fatal编程技术网

具有python请求的连续请求。会话()不工作

具有python请求的连续请求。会话()不工作,python,python-requests,Python,Python Requests,我想这么做 import requests s=requests.Session() login_data = dict(userName='user', password='pwd') ra=s.post('http://example/checklogin.php', data=login_data) print ra.content print ra.headers ans = dict(answer='5') f=s.cookies r=s.post('http://example/le

我想这么做

import requests
s=requests.Session()
login_data = dict(userName='user', password='pwd')
ra=s.post('http://example/checklogin.php', data=login_data)
print ra.content
print ra.headers
ans = dict(answer='5')
f=s.cookies
r=s.post('http://example/level1.php',data=ans,cookies=f)
print r.content
但是第二个post请求返回404错误,有人能告诉我为什么吗?

在最新版本的请求中,sessions对象配备了Cookie持久性,请查看请求会话ojbects。 因此,您不需要人为地添加cookie。 只是

只需打印cookie即可查看您是否已登录

for cookie in s.cookies:
    print (cookie.name, cookie.value)
示例站点是您的吗? 如果不是,站点可能会拒绝bot/爬虫程序! 您可以更改请求的用户代理,就像您正在使用浏览器一样

例如:

import requests
s=requests.Session()
headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36'
}
login_data = dict(userName='user', password='pwd')
ra=s.post('http://example/checklogin.php', data=login_data, headers=headers)
print ra.content
print ra.headers
ans = dict(answer='5')
r=s.post('http://example/level1.php',data=ans, headers = headers)
print r.content

它没有找到页面。检查url如果只运行第二个请求一切正常?url是正确的@zero323秒请求仅对已成功登录的用户可用。@Paco在浏览器中打开的url是正确的。在尝试所有答案后,我发现这一切正常。添加用户代理标头是否会覆盖包含已登录Cookie的标头?当我这样做时,我会得到一个页面,但它没有登录。。。
import requests
s=requests.Session()
headers = {
    'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.62 Safari/537.36'
}
login_data = dict(userName='user', password='pwd')
ra=s.post('http://example/checklogin.php', data=login_data, headers=headers)
print ra.content
print ra.headers
ans = dict(answer='5')
r=s.post('http://example/level1.php',data=ans, headers = headers)
print r.content