python - 如何获取请求 cookie 而不仅仅是响应 cookie
问题描述
我正在向使用 cookie 跟踪会话的网站发送请求。令我困惑的是,当我进入登录页面并检查时,chrome 首先发送 cookie?这是在我登录之前。我不应该在登录后收到 cookie 吗?这是网站:https ://unionline.uniongas.com/ul/Account/LogOn
您可以在请求 cookie 中看到有四个 cookie:“ULTICKET”、“ULRMUID”和“ULTOKEN”。谷歌如何将这些发送到服务器而不必先获取它们?
当我向我发送请求时,https://unionline.uniongas.com/ul/Account/LogOn
我只收到“ULTOKEN”cookie 而不是其他两个。
我的代码:
s = requests.Session()
headers = {
'Connection': 'keep-alive',
'Upgrade-Insecure-Requests': '1',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.105 Safari/537.36',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
'Sec-Fetch-Site': 'none',
'Sec-Fetch-Mode': 'navigate',
'Sec-Fetch-User': '?1',
'Sec-Fetch-Dest': 'document',
'Accept-Language': 'en-US,en;q=0.9',
}
response = s.get('https://unionline.uniongas.com/ul/Account/LogOn', headers=headers)
print(s.cookies.get_dict())
哪个打印:
{'ULTOKEN': ******}
我如何真正使用 Python 获取所有请求 cookie?
谢谢
解决方案
我还不能对这个网站发表评论,所以我别无选择,只能将它作为答案提出,也许它甚至就足够了,谁知道呢,因为你实际上在这里问了两个问题。
如果您之前与网站的交互不是已经拥有这些 cookie,我想说什么?
我一生中第一次连接到这个地址,浏览器在第一次请求中没有发送任何 cookie,但后来确实发送了 ULTOKEN。
这是预期的,因为浏览器无法知道随机站点需要这样和这样的cookie,除非浏览器以某种方式对其进行硬编码,我自然怀疑这里可能是这种情况。
至于获取在请求部分发送的 cookie,这有帮助吗?
print(response.request.cookies)
推荐阅读
- python - CS50 金融的符号无效,即使我使用了正确的符号
- c# - 当您将 lambda 函数作为参数传递给任务时,它是在任务线程还是调用者线程上运行?
- python - 如何去掉方括号
- reactjs - ag-grid-react reactjs中的行点击事件的名称是什么?
- node.js - 我想读取一个 Json 并返回所有具有相同“TANK”的“OP”(我正在使用节点)。根据例子
- algorithm - Kotlin:如何从 Android 上的 firebase 获取用户电子邮件/用户名
- python - 删除不需要的字符,并从 JSON 响应中写入
- php - 找不到表
- c# - 根据选中时切换内容的 ToggleButton 制作自定义控件(VisualState 问题)
- spring-boot - Thymeleaf 如何正确使用模型属性其抛出空错误