如何使用python登录需要服务器在第一次请求时响应会话id的页面?

如何使用python登录需要服务器在第一次请求时响应会话id的页面?,python,session,request,session-cookies,Python,Session,Request,Session Cookies,我正在写一个脚本来登录某个网页。为此,我使用request和request.session模块。在第一个带有登录参数的请求时,服务器会响应会话id。如何设置会话id以便进一步登录到同一页面 url = "some url of login page" payload = {'username': 'p05989', 'password': '123456'} with requests.session() as s: s.post(url1, data=payload) sess

我正在写一个脚本来登录某个网页。为此,我使用request和request.session模块。在第一个带有登录参数的请求时,服务器会响应会话id。如何设置会话id以便进一步登录到同一页面

url = "some url of login page"
payload = {'username': 'p05989', 'password': '123456'}
with requests.session() as s:
    s.post(url1, data=payload)
    sessionid = s.cookies.get('SESSIONID')
    print(sessionid)
    r = requests.get(url,data=payload)
    print(r.text)
在上述代码中,
服务器在第一个请求时响应sessionid。如何在第二个请求时使用该sessionid?

您已经在使用
请求。session()
;它为您处理cookies,前提是您继续使用会话处理所有请求:

url = "some url of login page"
payload = {'username': 'p05989', 'password': '123456'}
with requests.session() as s:
    # fetch the login page
    s.get(url)

    # post to the login form
    r = s.post(url1, data=payload)
    print(r.text)
在发布到登录表单之前,您可能首先需要使用
GET
来设置会话id


SESSIONID
cookie对您来说是透明的。

@Heisenberg:不,只要您继续使用
s
来处理请求,您就不必担心cookie。@Martijn Pieters:会话对象的get和post方法属于表单方法吗?@Heisenberg:浏览器解释HTML以查找表单元素,然后,当您提交表单时,浏览器会检查
标记以查看应该发生什么,并按照说明使用
GET
POST
request.Session().post()
request.Session().get()
方法为您执行这样的
post
get
请求,就像
request.post()
request.get()
一样,但是有任何Cookie。谢谢你的回复。但是我不明白我的登录表单使用post方法进行提交。但是你在答案中写了s.get()方法。它会工作吗?@Heisenberg:第一个
.get()
只是获取带有设置Cookie头的表单。
data=payload
参数存在错误;它源自您使用
requests.get(url,data=payload)
的问题代码。
import requests
import webbrowser

url = "https://www.invezta.com/investorsignup.aspx"


payload = {'login-email':  'email',
    'login-pwd': 'password'}

with requests.session() as s:
    # fetch the login page
    s.get(url)

    url1='https://www.invezta.com/Pdf_creator.aspx?User_ID='

    # post to the login form
    r = s.post(url1, data=payload)
    print(r.text)