Wget 将 cookies 保存到 bash 环境变量

问题描述 投票:0回答:2

我知道你可以使用 wget 将 cookie 保存到文件中

wget --save-cookies my-file.txt https://stackoverflow.com

有没有办法直接通过管道

--save-cookies
到 bash 环境变量?

bash cookies environment-variables wget
2个回答
1
投票

你可以像这样写入/dev/stdout:

$ cookies="$(wget --save-cookies /dev/stdout https://stackoverflow.com)"
$ echo "$cookies"
# HTTP cookie file.
# Generated by Wget on 2022-01-24 17:59:48.
# Edit at your own risk.

.stackoverflow.com      TRUE    /       FALSE   2682374400      prov    0c002a59-7bf1-f8e9-2806-e50bb7e03a11

0
投票

有点晚了,但我也刚刚偶然发现了这一点,并且花了一段时间才找到“官方”解决方案:使用选项

--save-headers
wget
。使用此选项,
wget
在与文档本身相同的位置输出标题。这意味着您可以使用
stdout
作为输出文件名在
-
上输出它们。从
stdout
,您可以按照通常的方式捕获标题和文档。例如:

wget -q -O- --no-check-certificate --save-headers --method=POST --body-data='{username:admin,password:secret}' --header='Content-Type:application/json' -O - http://1.2.3.4/api/foo/bar

但请注意,这将在 stdout 上输出标题

文档。就我而言,这就是我想要的。

如果你真的只想捕获标题,你可以尝试

--server-response
。这应该使
wget
stderr
上输出响应标头。我个人没有尝试过,也没有研究过手册的那一部分,所以我无法帮助解决这一问题。但是,如果
--save-headers
不能解决您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.