如何使用python登录需要服务器在第一次请求时响应会话ID的页面? [英] how to use python to login page which requires session id responded by server on first request?

查看:48
本文介绍了如何使用python登录需要服务器在第一次请求时响应会话ID的页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am writing a script to log in to some webpage. I using request and request.session module for this purpose.On first request with login parameters server responses a session id.How to set that session id for further login to same page.

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?

in above code, server responses sessionid on first request.How to use that sessionid on second request?

推荐答案

您已经在使用 requests.session();它会为您处理 cookie,只要您继续使用会话来处理您的所有请求:

You are already using requests.session(); it handles cookies for you, provided you keep using the session for all your requests:

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.

You probably do first need to use GET to get the session id set before posting to the login form.

SESSIONID cookie 为您透明处理.

The SESSIONID cookie is handled transparently for you.

这篇关于如何使用python登录需要服务器在第一次请求时响应会话ID的页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆