我要启动requests.Session()
并添加一个cookie,然后再开始第一个请求。我希望有一个Cookie参数或类似的方法
def session_start()
self.session = requests.Session(cookies=['session-id', 'xxx'])
def req1():
self.session.get('example.org')
def req2():
self.session.get('example2.org')
但是这行不通,我只能在cookies
方法中提供.get()
。我是否需要在session_start()中执行“虚拟请求”,或者在开始实际请求之前是否可以准备cookie?
答案 0 :(得分:0)
但是请注意,即使使用会话,方法级参数也不会在请求中保留。此示例仅发送带有第一个请求的cookie,而不发送第二个请求:
s = requests.Session()
r = s.get('https://httpbin.org/cookies', cookies={'from-my': 'browser'})
print(r.text)
# '{"cookies": {"from-my": "browser"}}'
r = s.get('https://httpbin.org/cookies')
print(r.text)
# '{"cookies": {}}'
答案 1 :(得分:0)
因此会话对象将保留 url 请求自己设置的任何 cookie,但是如果您提供 cookie 作为参数,它不会在下一个请求中保留。
您可以从文档中手动添加仍然存在的 cookie: “如果您想手动将 cookie 添加到您的会话,请使用 Cookie 实用程序函数来操作 Session.cookies。” https://requests.readthedocs.io/en/master/user/advanced/#session-objects
关于如何操作 cookie 的链接:https://requests.readthedocs.io/en/master/api/#api-cookies