python - curl 和 python cookie 是不同的
问题描述
我有一组 curl 命令,我试图将它们转换为 python 请求,但我卡在了 cookie 上。在 curl 中,说明说要通过
curl 'https://signon.jgi.doe.gov/signon/create' --data-urlencode 'login=USER_NAME' --data-urlencode 'password=USER_PASSWORD' -c cookies > /dev/null
这给了我以下文件
# Netscape HTTP Cookie File
# https://curl.haxx.se/docs/http-cookies.html
# This file was generated by libcurl! Edit at your own risk.
.jgi.doe.gov TRUE / FALSE 0 jgi_session <REDACTED>
#HttpOnly_signon-old.jgi.doe.gov FALSE / FALSE 0 _caliban_session <REDACTED>
当我在请求中尝试相同的事情时:
import requests
get_cookie = requests.post('https://signon.jgi.doe.gov/signon/create', data={'login':<USERNAME>, 'password': <PASSWORD>})
get_cookie.cookies
<RequestsCookieJar[Cookie(version=0, name='_caliban_session', value='<REDACTED>', port=None, port_specified=False, domain='signon.jgi.doe.gov', domain_specified=False, domain_initial_dot=False, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={'HttpOnly': None}, rfc2109=False)]>
返回的 cookie 是_caliban_session
,它在 curl cookie 文件中被注释掉。正确的 cookiejgi_session
似乎没有返回。结果,我使用 cookie 的后续请求被拒绝。
为什么 python 和 curl 的 cookie 不同?以及如何让 python 请求与 curl cookie 匹配?
解决方案
推荐阅读
- c - 使用回报(0)
- java - Java - 获取二维数组中的所有值组合
- android - android gradle 失败“AAPT:错误:资源颜色/com_facebook_button_background_color_focused_disabled”
- python - 使用不同类型的参数类型启动类的 Pythonic 方式
- java - 简单的 kafka 流不填充目标主题
- html - 如何将 bootstrap 4 中使用的 facebook 图标与我的实际 Facebook 帐户或带有 google 邮件图标的 google 邮件链接?
- c++ - 如何正确复制内存缓冲区?
- python - 如何使用 paramiko 向子进程程序发送命令?
- flutter - Flutter 生命周期:从 SharedPreferences 读取数据
- ios - 自定尺寸单元格高度变化导致跳跃动画