如何在 Python 请求中使用 cookie

新手上路,请多包涵

我正在尝试登录页面并访问页面中的另一个链接。

 payload={'username'=<username>,'password'=<password>}
with session() as s:
    r = c.post(<URL>, data=payload)
    print r
    print r.content

这给我一个“405 Not Allowed”错误。我使用 chrome 开发人员工具检查了 post 方法的详细信息,可以看到一个 api (URL/api/auth)。我将有效负载发布到该 URL,它正在运行,我得到的响应类似于我在开发人员中看到的响应。

不幸的是,当我在登录后尝试“获取”另一个 URL 时,我仍然从登录页面获取内容。为什么登录不粘?我应该使用 cookie 吗?我是新手,所以我真的不知道如何使用 cookie。

原文由 user1474157 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 285
1 个回答

您可以使用会话对象。它存储 cookie,以便您可以发出请求,并为您处理 cookie

 s = requests.Session()
# all cookies received will be stored in the session object

s.post('http://www...',data=payload)
s.get('http://www...')

文档: https ://requests.readthedocs.io/en/master/user/advanced/#session-objects

您还可以将 cookie 数据保存到外部文件,然后重新加载它们以保持会话持久,而无需在每次运行脚本时都登录:

如何将请求(python)cookie保存到文件中?

原文由 gtalarico 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题