使用wget时Cookie的格式?


31

什么是的网景格式wgetcookies.txt?我需要镜像一个需要登录的网站。我使用的是Chrome扩展程序,它以这种格式返回cookie,我将它们保存在cookies.txt,使用wget命令导入,但没有用,它只是下载内容,就像我根本没有登录一样。

感谢您的帮助。

Answers:


46

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

Netscape的cookies.txt文件的布局使得每一行包含一对“名称/值”对。示例cookies.txt文件可能包含一个如下所示的条目:

.netscape.com TRUE / FALSE 946684799 NETSCAPE_ID 100103

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

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

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

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

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

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

expiration-变量到期的UNIX时间。UNIX时间定义为自格林尼治标准时间1970年1月1日00:00:00起经过的秒数。

name-变量的名称。

value- 变量的值。

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


3
文件制表符或空格是否分开?
Ferrybig

3
@ferrybig使用制表符。
geckon '16

特殊之处在于cookie来自127.0.0.1,而不是来自域名吗?
PypeBros

4

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

例如 :

wget --keep-session-cookies --save-cookies cookies.txt "http://MYSITE/?__login=USER&__password=PASS"

根据?__login etc您要镜像的网站,您可能必须查看身份验证表单的工作方式。

然后,您可以使用:

wget --mirror --load-cookies cookies.txt http://MYSITE/

3
这并不能回答文件格式是什么的问题
Michael

2

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

# Netscape HTTP Cookie File

或这个:

# HTTP Cookie File
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.