使用 Python 请求登录网站:Cookie 和 HTTP 授权
问题:
由于 cookie 处理问题,用户无法使用 Python 的请求模块登录网站。该代码使用了 requests.post,但产生了错误的结果。
解决方案:
HTTP 授权与 Cookie
HTTP 授权涉及直接将用户的凭据作为 HTTP 标头的一部分发送。另一方面,cookie 允许服务器通过在客户端计算机上存储信息来维护状态。
正确的 Cookie 用法
在提供的代码中,用户创建了一个名为 ck 的字典并将其作为参数传递给 requests.post。但是,此字典应作为数据参数传递。
更正的代码
ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} r = requests.post(url, data=ck)
维护登录状态
要长时间保持登录状态,必须保留网络会话。这可以使用 requests.Session 类来实现。默认情况下,Requests 会为每个请求创建一个新的会话实例。
使用会话的建议代码
with requests.Session() as session: login_data = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} response = session.post(url, data=login_data) # Check login status. If successful, make subsequent requests using the same session if response.status_code == 200: safe_response = session.get('protected_url') print(safe_response.text)
以上是如何使用Python的Requests模块成功登录网站?的详细内容。更多信息请关注PHP中文网其他相关文章!