Python:请求会话登录 Cookie

2023-12-10

我的目的是登录网站,然后从 python 脚本访问受保护的图像。我可以通过浏览器进行合法和工作访问。

这就是我现在所拥有的。

import requests

s = requests.Session()

s.get('*domain*')

r_login  =s.post('*domain*/user.php', headers={'cmd': 'login', 'loginname': '***', 'password': '***' })

print (s.cookies)
print (r_login.status_code)

r_img = s.get('*domain*/*protectedimage*.jpg')
print (r_img.status_code)
print (r.cookies)

print (s.cookies['PHPSESSID'])

Output:

<<class 'requests.cookies.RequestsCookieJar'>[<Cookie PHPSESSID=664b0842085b847a04d415a22e013ad8 for *domain*/>]>
200
403
<<class 'requests.cookies.RequestsCookieJar'>[]>
664b0842085b847a04d415a22e013ad8

我确信我可以成功登录,因为我在这样做后曾经下载过html文件,并且它是处于登录状态的。但我的问题是,在我看来,我的PHPSESSIDcookie 没有通过,所以我得到了403错误返回。但我在我的会议中显然有它。我也尝试过手动将 cookie 添加到我的"r_img"行,这没有什么区别,我仍然得到一个空的CookieJar and a 403错误返回。仅使用 requests 模块不可能吗?我是不是忽略了什么?请原谅我不太熟悉HTTP要求。

我使用 Python 3.4 只是为了清楚起见。


你正在传递你的表单数据 as HTTP 标头。 POST 登录表单应发送表单元素作为data参数改为:

r_login = s.post('*domain*/user.php', 
                 data={'cmd': 'login', 'loginname': '***', 'password': '***' })

Do 检查返回的尸体,不仅仅是状态代码。您的 POST 请求已被服务器接受(200 OK)但由于没有发布登录信息,body很可能会告诉您诸如“登录不正确,请重试”之类的信息。

服务器很可能再次清除了 cookie,因为当您请求图像时它不是有效的登录会话。 403 响应可能包含Set-Cookie标题为PHPSESSID用过去的日期来清除它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:请求会话登录 Cookie 的相关文章

随机推荐

  • 在我的应用程序中登录 Facebook/Twitter

    我正在开发我的网站 在我的网站中我希望用户通过他们的登录 社交网络凭据 例如 Facebook 和 Twitter 当这些用户在我的网站上进行任何活动时 我应该如何跟踪他们 假设用户使用 Facebook 用户名和密码登录 现在他被重定向到
  • 最新的 BitTorrent DHT 实施建议是什么?

    我正在努力实现另一个 BitTorrent 客户端 目前正在与 DHT 作斗争 是按照这个规范来实现的http www bittorrent org beps bep 0005 html但开始调试它时 我注意到网络上其他节点的响应有所不同
  • ZF 包含路径

    require once 是否正确 你会在哪里以及如何放置它包含路径 它不应该在 application ini 或 bootstrap 中吗 例子 require once Zend View Helper Abstract php qu
  • C++ std::map 键排序比较函数?

    我有一个类 其中重载了所有比较运算符 我将一堆这些对象作为键加载到地图中 并且我希望地图对它们进行从最小到最大的排序 然而 地图实际上是按从大到小排序的 为什么是这样 当它对映射进行排序时 它是否不使用键上的比较运算符 我怎样才能让它做到这
  • Java/Spring 异步处理 Spring 批处理作业请求

    目前 我在应用程序中公开了一个启动 Spring 批处理作业的休息端点 但是 请求不是异步安排的 作业完成后提供响应 并显示批处理状态MyResponse object RestController RequestMapping test
  • 如何检查 TextView 字符串是否已被修剪(选取框)?

    If a TextView其父元素中没有足够的空间 我将显示一个图标 该文本或图标上的选项卡将用于调用包含完整字符串的警报对话框 所以我需要知道是否TextView已被修剪 计算TextView的宽度并计算将在textview中显示的文本的
  • 使弹性项目换行以创建新列

    我正在 div 中填充元素 并且我想对它们进行排列 如下所示 1 3 2 4 现在 它只是在下降 1 2 3 4 我如何告诉它在 2 个元素之后移动到下一列 parent display flex flex direction column
  • 如何将 hbase 表转储到文本文件中?

    我需要转储 HBase 中的一张表并需要采用文本文件 csv 格式 我寻找scan export and get在 HBase shell 中执行命令 但不起作用 有很多方法可以从 HBase 表中获取数据 例如运行导出映射 归约作业 您可
  • 如何使 VK_LAYER_KHRONOS_validation 可用?

    解决方案 卸载 vulkan 在注册表 HKLM SOFTWARE Khronos Vulkan ExplicitLayers 和 HKLM SOFTWARE WOW6432Node Khronos Vulkan ExplicitLayer
  • 用于创建 Lambda 的 AWS Java SDK 版本

    我正在尝试按照所述指南开发 AWS Java lambda 函数here其中描述了RequestHandler接口 还引用 AWS lambda java core 库 不过 我正在尝试按照推荐使用最新的 SDKhere但这是完全不同的Re
  • 什么样的内存语义控制 C# 中的数组分配?

    鉴于以下情况 字节 数据 和一个声明为的函数私有字节 构造命令 如果我要分配的结果构造命令 to sDatasData 是否只是指向从函数返回的内容 或者是否会在内存中为 sData 分配一些空间 并将函数结果的内容复制到其中 该赋值将简单
  • 从 json 中解组嵌套对象

    我有传入的 JSON 字符串 需要解组为 JAXB 带注释的对象 我正在使用抛弃来做到这一点 JSON 字符串如下所示 objectA propertyOne some val propertyTwo some other val obje
  • 如何调试 Google Apps 脚本(又名 Logger.log 记录到哪里?)

    在Google表格中 您可以添加一些脚本功能 我正在添加一些东西onEdit事件 但我不知道它是否有效 据我所知 您无法从 Google Sheets 调试实时事件 因此您必须从调试器执行此操作 这是毫无意义的 因为事件参数传递给了我的on
  • Java Eclipse IDE 出现“未找到模块 javafx.controls”错误

    我正在使用带有 Java 的 Eclipse IDE 2020 03 版本 我正在尝试使用 FXML 在线检查了一些教程和步骤并遵循它们 但我仍然收到以下错误 boot层初始化时出错 java lang module FindExcepti
  • jQuery-mobile 和 ASP.NET 组合问题

    我正在开发一个结合 jQuery mobile 和 asp net 网络表单 为了使我的 asp net 控件的回发正常工作 我必须禁用 ajax 页面顶部 如下所示 但是当像这样禁用ajax时 其他功能似乎不起作用 我无法从 jQuery
  • 获取 JavaScript 正则表达式中每个捕获的索引

    我想匹配正则表达式 例如 a b c d with aabccde 并获取以下信息 a at index 0 b at index 2 cc at index 3 我怎样才能做到这一点 String match 返回匹配列表和完整匹配开始的
  • 如何减少pyinstaller中的exe文件大小

    我正在尝试从 python 脚本开发 exe 文件 但其大小超过 715MB 即使我使用虚拟环境进行开发 但大小仍然很大 我在脚本中使用的这些库 import numpy as np import pandas as pd import o
  • VoIP 通知证书主题必须以“.voip”结尾,设备令牌应用程序包以“.voip”结尾

    我在 twilio 中遇到错误 说 VoIP 通知证书主题必须以 voip 结尾 设备令牌应用程序包以 voip 结尾 当我检查类似的问题时发现解决方案是更改 解决方案是 BundleID voip 我尝试在developer apple中
  • 在 Windows 中的 Android 中通过代理启用 Internet 连接

    如何在 Windows 中通过 Android 代理启用互联网连接 http www coderanch com t 462906 Android Mobile connect internet behind proxy 在早期版本的 An
  • Python:请求会话登录 Cookie

    我的目的是登录网站 然后从 python 脚本访问受保护的图像 我可以通过浏览器进行合法和工作访问 这就是我现在所拥有的 import requests s requests Session s get domain r login s p