繁体   English   中英

python 请求与 bash curl 对于 session cookies

[英]python requests vs bash curl for session cookies

我有一个 bash 脚本,它登录到一个网站并从 URL 获取 json 数据,然后做其他事情。 我正在尝试使用 python 重写脚本,但我被困在了日志部分本身。

下面是我编写的 bash 脚本中的 function,用于登录站点并获取状态

get_status()  {
curl -s ''"$url"'/target/app1/login' -c cookiejar
curl -s ''"$url"'/target/app1/login' -X POST -c cookiejar --data 'username='"$username"'&password='"$password"''
cookie=$(grep JSESSIONID cookiejar | awk '{print $6"="$7}')
status=$(curl -s ''"$url"'/target/app1/status' -H 'Cookie: '"$cookie"'' 
}
  • 第一个 curl 获取一个示例 cookie 以发布到第二个 curl 的登录页面
  • 第二个curl使用提供的用户名和密码登录
  • 第三个 curl 使用“JSESSIONID”cookie 获取实际数据

我正在尝试使用 python 中的请求执行相同的操作,如下所示

session = requests.Session()
session.get(url + "/target/app1/login")
print(session.cookies)
response = session.post(url + "/target/app1/login", data=data)
print(response.cookies)

在上面的代码中,数据变量保存用户名和密码字符串。

当我打印response.cookies时,我没有得到可用于验证未来请求以获取数据的 JSESSIONID cookie。

注意:当我打印响应时,它返回 200

我是 python 的新手,我们将不胜感激。

谢谢

对于任何有同样问题的人,希望这会有所帮助。

我能够使用下面的代码来实现它。

session = requests.session()
session.get(url + "/target/app1/login")
login = session.post(url + "/target/app1/login", data)
data = session.get(url)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM