使用 wget 时 cookie 的格式?

Zar*_*ric 40 wget

什么是的网景格式wgetcookies.txt?我需要镜像一个需要登录的网站。我使用的Chrome扩展,在这种格式返回饼干,我将它们保存cookies.txt,导入与wget命令,但没有用,它只是下载像我并不是在所有已登录的内容。

我很感激任何帮助。

小智 59

格式为手册页中所述的 Netscape 格式,此格式为:

Netscape 的 cookies.txt 文件的布局是这样的,每行包含一个名称-值对。示例 cookies.txt 文件可能包含如下所示的条目:

.netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103

每行代表一条存储的信息。在每个字段之间插入一个制表符

从左到右,这是每个字段代表的内容:

domain - 创建 AND 的域,可以读取变量。

标志- 一个 TRUE/FALSE 值,指示给定域中的所有机器是否都可以访问该变量。该值由浏览器自动设置,具体取决于您为域设置的值。

path - 域内变量有效的路径。

安全- 一个 TRUE/FALSE 值,指示是否需要与域的安全连接来访问变量。

到期- 变量将到期的 UNIX 时间。UNIX 时间定义为自 1970 年 1 月 1 日 00:00:00 GMT 以来的秒数。

name - 变量的名称。

value - 变量的值。

(来自“非官方 Cookie 常见问题解答”,为清晰起见进行了编辑)

  • 使用@ferrybig 标签。 (5认同)
  • 文件是 Tab 还是 Space 分开的? (3认同)

小智 5

为 wget 获取 cookie 的一种方法是使用 wget 的 --keep-session-cookies 选项。

例如 :

wget --keep-session-cookies --save-cookies cookies.txt "http://MYSITE/?__login=USER&__password=PASS"
Run Code Online (Sandbox Code Playgroud)

?__login etc取决于您尝试镜像的网站,您可能需要查看身份验证表单的工作方式。

然后你可以使用:

wget --mirror --load-cookies cookies.txt http://MYSITE/
Run Code Online (Sandbox Code Playgroud)

  • 这不能回答文件格式是什么的问题 (3认同)

小智 5

每个数据行的 Netscape cookie 文件格式如上,但您将无法读取它,HTTP::Cookies::Netscape除非它有这样的标题行,完整的文件格式要求:

# Netscape HTTP Cookie File
Run Code Online (Sandbox Code Playgroud)

或这个:

# HTTP Cookie File
Run Code Online (Sandbox Code Playgroud)

  • 这是如此黑色的巫毒教……你有没有提到文档中提到的地方?它不在 curl 文档(https://curl.haxx.se/docs/http-cookies.html)中,也没有链接在那里的页面......(它确实解决了我的问题!所以绝对需要像你说的! ) (2认同)
  • 对于其他想知道的人,[youtube-dl](https://youtube-dl.org/) 也需要此评论标题以接受带有 `--cookies mycookies.txt` 的 cookie 文件 (2认同)